aboutsummaryrefslogtreecommitdiff
path: root/winsup/cygwin/cygthread.cc
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/cygwin/cygthread.cc
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/cygwin/cygthread.cc')
-rw-r--r--winsup/cygwin/cygthread.cc11
1 files changed, 3 insertions, 8 deletions
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;