summaryrefslogtreecommitdiff
path: root/boehm-gc/linux_threads.c
diff options
context:
space:
mode:
authorbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>2000-12-30 12:18:39 +0000
committerbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>2000-12-30 12:18:39 +0000
commit5cba613e21b7b704bcfd1340081c4b5a1b21ad4c (patch)
tree45acacc07816160e269cf47dd6cdeccef9036f29 /boehm-gc/linux_threads.c
parent667143119042b4bd9747785b6f9e18857c22a44d (diff)
downloadgcc-5cba613e21b7b704bcfd1340081c4b5a1b21ad4c.tar.gz
For boehm-gc:
* configure.in: Rename THREADLIB to THREADLIBS. * Makefile.am (LINK): Add $(THREADLIBS) to libtool command line. This ensures that we link the correct version of the linuxthreads semaphore functions. * Makefile.in: Rebuilt. * configure: Rebuilt. * linux_thread.c (GC_thr_init, GC_suspend_handler): Add SIGABRT to the list of signals which are not blocked during suspend in the NO_SIGNALS case. For libjava: * Makefile.am (libgcj_la_LIBADD): Add $(THREADLIBS). This ensures that the correct versions of various linuxthreads functions get linked. * Makefile.in: Rebuilt. * java/lang/natThread.cc (finalize_native): New static function. Call _Jv_ThreadDestroyData. (initialize_native): Register finalizer for "data". * include/posix-threads.h (_Jv_ThreadInitData): New simpler prototype. (_Jv_ThreadDestroyData): New prototype. * include/win32-threads.h: Ditto. * include/no-threads.h: Ditto. * posix-threads.cc (_Jv_ThreadInitData): Implement new prototype. (_Jv_ThreadDestroyData): New function. Free native thread "data" and move mutex and condition variable destroy code from: (really_start): ...here. (_Jv_ThreadStart): Set PTHREAD_CREATE_DETACHED. * win32-threads.cc (_Jv_ThreadInitData): Implement new prototype. (_Jv_ThreadDestroyData): Implemented. * nogc.cc (_Jv_AllocObject): Use "void *" not "ptr_t". (_Jv_AllocArray): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38557 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'boehm-gc/linux_threads.c')
-rw-r--r--boehm-gc/linux_threads.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/boehm-gc/linux_threads.c b/boehm-gc/linux_threads.c
index c3f19b8ec57..cac52374d72 100644
--- a/boehm-gc/linux_threads.c
+++ b/boehm-gc/linux_threads.c
@@ -201,6 +201,7 @@ void GC_suspend_handler(int sig)
if (sigdelset(&mask, SIGINT) != 0) ABORT("sigdelset() failed");
if (sigdelset(&mask, SIGQUIT) != 0) ABORT("sigdelset() failed");
if (sigdelset(&mask, SIGTERM) != 0) ABORT("sigdelset() failed");
+ if (sigdelset(&mask, SIGABRT) != 0) ABORT("sigdelset() failed");
# endif
do {
me->signal = 0;
@@ -487,7 +488,8 @@ void GC_thr_init()
# ifdef NO_SIGNALS
if (sigdelset(&act.sa_mask, SIGINT) != 0
|| sigdelset(&act.sa_mask, SIGQUIT != 0)
- || sigdelset(&act.sa_mask, SIGTERM != 0)) {
+ || sigdelset(&act.sa_mask, SIGTERM != 0)
+ || sigdelset(&act.sa_mask, SIGABRT != 0)) {
ABORT("sigdelset() failed");
}
# endif