diff options
author | Christopher Faylor <me@cgf.cx> | 2006-03-01 18:23:24 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2006-03-01 18:23:24 +0000 |
commit | 3b1f276fca026267c148ee1b4738db224f3f4186 (patch) | |
tree | 5ac999c6416769463092797568534d3bc949ae25 /winsup | |
parent | 7bf59bfd6b0af67c80ac9410c85c893f07190973 (diff) | |
download | newlib-3b1f276fca026267c148ee1b4738db224f3f4186.zip newlib-3b1f276fca026267c148ee1b4738db224f3f4186.tar.gz newlib-3b1f276fca026267c148ee1b4738db224f3f4186.tar.bz2 |
* cygthread.cc (cygthread::callfunc): Create ev as an auto-reset event so that
it will be reset by WaitFor*Object as appropriate.
(cygthread::stub): Ditto.
(cygthread::terminate_thread): Remove forced setting of thread termination.
Diffstat (limited to 'winsup')
-rw-r--r-- | winsup/cygwin/ChangeLog | 8 | ||||
-rw-r--r-- | winsup/cygwin/cygthread.cc | 11 |
2 files changed, 11 insertions, 8 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index df46f73..407a09b 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,11 @@ +2006-03-01 Christopher Faylor <cgf@timesys.com> + + * cygthread.cc (cygthread::callfunc): Create ev as an auto-reset event + so that it will be reset by WaitFor*Object as appropriate. + (cygthread::stub): Ditto. + (cygthread::terminate_thread): Remove forced setting of thread + termination. + 2006-03-01 Corinna Vinschen <corinna@vinschen.de> * include/sys/dirent.h (struct __DIR): Rename __d_unused to diff --git a/winsup/cygwin/cygthread.cc b/winsup/cygwin/cygthread.cc index ee94e98..a365dcc 100644 --- a/winsup/cygwin/cygthread.cc +++ b/winsup/cygwin/cygthread.cc @@ -36,7 +36,7 @@ cygthread::callfunc (bool issimplestub) else { if (issimplestub) - ev = CreateEvent (&sec_none_nih, TRUE, FALSE, NULL); + ev = CreateEvent (&sec_none_nih, FALSE, FALSE, NULL); pass_arg = alloca (arglen); memcpy (pass_arg, arg, arglen); SetEvent (ev); @@ -78,7 +78,7 @@ cygthread::stub (VOID *arg) debug_printf ("thread '%s', id %p, stack_ptr %p", info->name (), info->id, info->stack_ptr); if (!info->ev) { - info->ev = CreateEvent (&sec_none_nih, TRUE, FALSE, NULL); + info->ev = CreateEvent (&sec_none_nih, FALSE, FALSE, NULL); info->thread_sync = CreateEvent (&sec_none_nih, FALSE, FALSE, NULL); } } @@ -319,12 +319,7 @@ cygthread::terminate_thread () if (is_freerange) free (this); else - { -#ifdef DEBUGGING - terminated = true; -#endif - release (true); - } + release (true); goto out; |