mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-29 23:04:12 +08:00
prims.cc (_Jv_CreateJavaVM): Add comment about initialization order.
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. Co-Authored-By: Bryce McKinlay <mckinlay@redhat.com> From-SVN: r95095
This commit is contained in:
parent
5909b0346c
commit
7e9534bc54
@ -1,3 +1,12 @@
|
|||||||
|
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>
|
2005-02-15 Mark Wielaard <mark@klomp.org>
|
||||||
|
|
||||||
* java/util/jar/Attributes.java (Name.CLASS_PATH): Document that
|
* java/util/jar/Attributes.java (Name.CLASS_PATH): Document that
|
||||||
|
@ -281,6 +281,17 @@ handle_intr (int)
|
|||||||
// Do nothing.
|
// 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
|
void
|
||||||
_Jv_InitThreads (void)
|
_Jv_InitThreads (void)
|
||||||
{
|
{
|
||||||
@ -296,6 +307,10 @@ _Jv_InitThreads (void)
|
|||||||
sigemptyset (&act.sa_mask);
|
sigemptyset (&act.sa_mask);
|
||||||
act.sa_flags = 0;
|
act.sa_flags = 0;
|
||||||
sigaction (INTR, &act, NULL);
|
sigaction (INTR, &act, NULL);
|
||||||
|
|
||||||
|
// Block SIGCHLD here to ensure that any non-Java threads inherit the new
|
||||||
|
// signal mask.
|
||||||
|
block_sigchld();
|
||||||
}
|
}
|
||||||
|
|
||||||
_Jv_Thread_t *
|
_Jv_Thread_t *
|
||||||
@ -333,17 +348,6 @@ _Jv_ThreadSetPriority (_Jv_Thread_t *data, jint prio)
|
|||||||
#endif
|
#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
|
void
|
||||||
_Jv_ThreadRegister (_Jv_Thread_t *data)
|
_Jv_ThreadRegister (_Jv_Thread_t *data)
|
||||||
{
|
{
|
||||||
|
@ -921,6 +921,8 @@ _Jv_CreateJavaVM (void* /*vm_args*/)
|
|||||||
|
|
||||||
PROCESS_GCJ_PROPERTIES;
|
PROCESS_GCJ_PROPERTIES;
|
||||||
|
|
||||||
|
/* Threads must be initialized before the GC, so that it inherits the
|
||||||
|
signal mask. */
|
||||||
_Jv_InitThreads ();
|
_Jv_InitThreads ();
|
||||||
_Jv_InitGC ();
|
_Jv_InitGC ();
|
||||||
_Jv_InitializeSyncMutex ();
|
_Jv_InitializeSyncMutex ();
|
||||||
|
Loading…
Reference in New Issue
Block a user