* cygthread.cc (cygthread::stub2): Remove myself from the list of threads
monitored by signals since this thread will never call raise or sigwait. (cygthread::simplestub2): Ditto. Set ev here. (cygthread::cygthread): Don't set ev here for freerange thread.
This commit is contained in:
parent
78f3155ced
commit
aeab6ea658
|
@ -1,3 +1,11 @@
|
||||||
|
2003-12-05 Christopher Faylor <cgf@redhat.com>
|
||||||
|
|
||||||
|
* cygthread.cc (cygthread::stub2): Remove myself from the list of
|
||||||
|
threads monitored by signals since this thread will never call raise or
|
||||||
|
sigwait.
|
||||||
|
(cygthread::simplestub2): Ditto. Set ev here.
|
||||||
|
(cygthread::cygthread): Don't set ev here for freerange thread.
|
||||||
|
|
||||||
2003-12-04 Christopher Faylor <cgf@redhat.com>
|
2003-12-04 Christopher Faylor <cgf@redhat.com>
|
||||||
|
|
||||||
* path.cc (slash_unc_prefix_p): Allow '.' as a valid character after
|
* path.cc (slash_unc_prefix_p): Allow '.' as a valid character after
|
||||||
|
|
|
@ -40,11 +40,10 @@ void
|
||||||
cygthread::stub2 (void *arg, void *)
|
cygthread::stub2 (void *arg, void *)
|
||||||
{
|
{
|
||||||
exception_list except_entry;
|
exception_list except_entry;
|
||||||
|
|
||||||
/* Initialize this thread's ability to respond to things like
|
/* Initialize this thread's ability to respond to things like
|
||||||
SIGSEGV or SIGFPE. */
|
SIGSEGV or SIGFPE. */
|
||||||
init_exceptions (&except_entry);
|
init_exceptions (&except_entry);
|
||||||
|
_my_tls.remove (); // Remove me from signal chain -- not signalable.
|
||||||
|
|
||||||
cygthread *info = (cygthread *) arg;
|
cygthread *info = (cygthread *) arg;
|
||||||
if (info->arg == cygself)
|
if (info->arg == cygself)
|
||||||
|
@ -108,13 +107,14 @@ void
|
||||||
cygthread::simplestub2 (void *arg, void *)
|
cygthread::simplestub2 (void *arg, void *)
|
||||||
{
|
{
|
||||||
exception_list except_entry;
|
exception_list except_entry;
|
||||||
|
|
||||||
/* Initialize this thread's ability to respond to things like
|
/* Initialize this thread's ability to respond to things like
|
||||||
SIGSEGV or SIGFPE. */
|
SIGSEGV or SIGFPE. */
|
||||||
init_exceptions (&except_entry);
|
init_exceptions (&except_entry);
|
||||||
|
_my_tls.remove (); // Remove me from signal chain -- not signalable.
|
||||||
|
|
||||||
cygthread *info = (cygthread *) arg;
|
cygthread *info = (cygthread *) arg;
|
||||||
info->stack_ptr = &arg;
|
info->stack_ptr = &arg;
|
||||||
|
info->ev = info->h;
|
||||||
info->func (info->arg == cygself ? info : info->arg);
|
info->func (info->arg == cygself ? info : info->arg);
|
||||||
ExitThread (0);
|
ExitThread (0);
|
||||||
}
|
}
|
||||||
|
@ -197,8 +197,6 @@ cygthread::cygthread (LPTHREAD_START_ROUTINE start, LPVOID param,
|
||||||
this, 0, &id);
|
this, 0, &id);
|
||||||
if (!h)
|
if (!h)
|
||||||
api_fatal ("thread handle not set - %p<%p>, %E", h, id);
|
api_fatal ("thread handle not set - %p<%p>, %E", h, id);
|
||||||
if (is_freerange)
|
|
||||||
ev = h;
|
|
||||||
thread_printf ("created thread %p", h);
|
thread_printf ("created thread %p", h);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue