+2005-02-15 David Daney <ddaney@avtrex.com>
+ Bryce McKinlay <mckinlay@redhat.com>
+
+ * prims.cc (_Jv_CreateJavaVM): Add comment about initialization order.
+ * posix-threads.cc (_Jv_InitThreads): Call block_sigchld() here to
+ ensure that GC threads inherit the new signal mask.
+ (block_sigchld): Call JvFail rather than throwing exception if
+ pthread_sigmask() fails.
+
2005-02-15 Mark Wielaard <mark@klomp.org>
* java/util/jar/Attributes.java (Name.CLASS_PATH): Document that
// Do nothing.
}
+static void
+block_sigchld()
+{
+ sigset_t mask;
+ sigemptyset (&mask);
+ sigaddset (&mask, SIGCHLD);
+ int c = pthread_sigmask (SIG_BLOCK, &mask, NULL);
+ if (c != 0)
+ JvFail (strerror (c));
+}
+
void
_Jv_InitThreads (void)
{
sigemptyset (&act.sa_mask);
act.sa_flags = 0;
sigaction (INTR, &act, NULL);
+
+ // Block SIGCHLD here to ensure that any non-Java threads inherit the new
+ // signal mask.
+ block_sigchld();
}
_Jv_Thread_t *
#endif
}
-static void
-block_sigchld()
-{
- sigset_t mask;
- sigemptyset (&mask);
- sigaddset (&mask, SIGCHLD);
- int c = pthread_sigmask (SIG_BLOCK, &mask, NULL);
- if (c != 0)
- throw new java::lang::InternalError (JvNewStringUTF (strerror (c)));
-}
-
void
_Jv_ThreadRegister (_Jv_Thread_t *data)
{