diff options
author | Christopher Faylor <me@cgf.cx> | 2002-08-11 19:31:24 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2002-08-11 19:31:24 +0000 |
commit | 5ffec1d16d6a4372f9800136be254fdf35a760d8 (patch) | |
tree | ff43f0dcbe9547722cdc99d1b18d5d360c5509ab /winsup/cygwin/cygthread.cc | |
parent | 3cb62bd614c2960567f8b6ea643427daa39e8650 (diff) | |
download | cygnal-5ffec1d16d6a4372f9800136be254fdf35a760d8.tar.gz cygnal-5ffec1d16d6a4372f9800136be254fdf35a760d8.tar.bz2 cygnal-5ffec1d16d6a4372f9800136be254fdf35a760d8.zip |
* cygthread.cc (cygthread::cygthread): Close another race.
Diffstat (limited to 'winsup/cygwin/cygthread.cc')
-rw-r--r-- | winsup/cygwin/cygthread.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/winsup/cygwin/cygthread.cc b/winsup/cygwin/cygthread.cc index 00eeb25d0..d1d93375c 100644 --- a/winsup/cygwin/cygthread.cc +++ b/winsup/cygwin/cygthread.cc @@ -123,8 +123,15 @@ cygthread::cygthread (LPTHREAD_START_ROUTINE start, LPVOID param, api_fatal ("name should never be NULL"); #endif thread_printf ("name %s, id %p", name, id); - while (ResumeThread (h) == 0) + while (!h || ResumeThread (h) != 1) +#ifndef DEBUGGING Sleep (0); +#else + { + thread_printf ("waiting for %s<%p> to become active", __name, h); + Sleep (0); + } +#endif __name = name; /* Need to set after thread has woken up to ensure that it won't be cleared by exiting thread. */ |