/* function prototypes ********************************************************/
void signal_handler_sighup(int sig, siginfo_t *siginfo, void *_p);
+void signal_handler_sigusr1(int sig, siginfo_t *siginfo, void *_p);
/* signal_init *****************************************************************
signal_register_signal(Signal_INTERRUPT_SYSTEM_CALL, (functionptr) signal_handler_sighup, 0);
#endif
-#if defined(ENABLE_THREADS) && defined(ENABLE_GC_CACAO)
- /* SIGUSR1 handler for the exact GC to suspend threads */
+#if defined(ENABLE_THREADS)
+ /* SIGUSR1 handler for thread suspension */
- signal_register_signal(SIGUSR1, (functionptr) md_signal_handler_sigusr1,
+ signal_register_signal(SIGUSR1, (functionptr) signal_handler_sigusr1,
SA_SIGINFO);
#endif
#endif
+/* signal_handler_sigusr1 ******************************************************
+
+ Signal handler for suspending threads.
+
+*******************************************************************************/
+
+#if defined(ENABLE_THREADS)
+void signal_handler_sigusr1(int sig, siginfo_t *siginfo, void *_p)
+{
+ // Really suspend ourselves by acknowledging the suspension.
+ threads_suspend_ack();
+}
+#endif
+
+
/*
* These are local overrides for various environment variables in Emacs.
* Please do not remove this and leave it at the end of the file, where