aboutsummaryrefslogtreecommitdiff
path: root/winsup
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2006-03-01 18:23:24 +0000
committerChristopher Faylor <me@cgf.cx>2006-03-01 18:23:24 +0000
commit3b1f276fca026267c148ee1b4738db224f3f4186 (patch)
tree5ac999c6416769463092797568534d3bc949ae25 /winsup
parent7bf59bfd6b0af67c80ac9410c85c893f07190973 (diff)
downloadnewlib-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/ChangeLog8
-rw-r--r--winsup/cygwin/cygthread.cc11
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;