aboutsummaryrefslogtreecommitdiffstats
path: root/src/data.c
diff options
context:
space:
mode:
authorKenichi Handa2012-09-06 10:49:15 +0900
committerKenichi Handa2012-09-06 10:49:15 +0900
commitfca81a8d405cd4c825e144099c54dd163636aa3b (patch)
treeee09be4b0e079b9c8863c8b570496a169227b218 /src/data.c
parentf41d6f9db69ce77fe9b3a637de407e8b589e0dc4 (diff)
parent067b39d4296765e83f9530eca456168f6cda95fc (diff)
downloademacs-fca81a8d405cd4c825e144099c54dd163636aa3b.tar.gz
emacs-fca81a8d405cd4c825e144099c54dd163636aa3b.zip
merge trunk
Diffstat (limited to 'src/data.c')
-rw-r--r--src/data.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/data.c b/src/data.c
index 415a8962350..6151d815b29 100644
--- a/src/data.c
+++ b/src/data.c
@@ -3207,18 +3207,19 @@ syms_of_data (void)
3207 XSYMBOL (intern_c_string ("most-negative-fixnum"))->constant = 1; 3207 XSYMBOL (intern_c_string ("most-negative-fixnum"))->constant = 1;
3208} 3208}
3209 3209
3210#ifndef FORWARD_SIGNAL_TO_MAIN_THREAD 3210static _Noreturn void
3211_Noreturn 3211handle_arith_signal (int sig)
3212#endif
3213static void
3214arith_error (int signo)
3215{ 3212{
3216 sigsetmask (SIGEMPTYMASK); 3213 sigsetmask (SIGEMPTYMASK);
3217
3218 SIGNAL_THREAD_CHECK (signo);
3219 xsignal0 (Qarith_error); 3214 xsignal0 (Qarith_error);
3220} 3215}
3221 3216
3217static void
3218deliver_arith_signal (int sig)
3219{
3220 handle_on_main_thread (sig, handle_arith_signal);
3221}
3222
3222void 3223void
3223init_data (void) 3224init_data (void)
3224{ 3225{
@@ -3230,5 +3231,5 @@ init_data (void)
3230 if (!initialized) 3231 if (!initialized)
3231 return; 3232 return;
3232#endif /* CANNOT_DUMP */ 3233#endif /* CANNOT_DUMP */
3233 signal (SIGFPE, arith_error); 3234 signal (SIGFPE, deliver_arith_signal);
3234} 3235}