summaryrefslogtreecommitdiffstats
path: root/winsup
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2005-07-29 14:29:33 +0000
committerChristopher Faylor <me@cgf.cx>2005-07-29 14:29:33 +0000
commit2b3fc7325c6606b3231ad3d530e5bbed680b5af8 (patch)
tree59df6744df0bbb1f917ad4559b0bf6e7450e771e /winsup
parent40c125cf383c438c990e23bb60283160dec86d1a (diff)
downloadcygnal-2b3fc7325c6606b3231ad3d530e5bbed680b5af8.tar.gz
cygnal-2b3fc7325c6606b3231ad3d530e5bbed680b5af8.tar.bz2
cygnal-2b3fc7325c6606b3231ad3d530e5bbed680b5af8.zip
* cygthread.cc (cygthread::simplestub): Wait for h to be filled out by main
thread before assigning it.
Diffstat (limited to 'winsup')
-rw-r--r--winsup/cygwin/ChangeLog7
-rw-r--r--winsup/cygwin/cygthread.cc3
2 files changed, 9 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 0a79875c8..ebf673ecc 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,4 +1,9 @@
-2005-07-29 Christopher Faylor <cgf@timesys.com>
+2005-07-29 Arto Huusko <arto.huusko@wmdata.fi>
+
+ * cygthread.cc (cygthread::simplestub): Wait for h to be filled out
+ by main thread before assigning it.
+
+2005-07-29 Arto Huusko <arto.huusko@wmdata.fi>
* pinfo.cc (pinfo::init): Sleep before retrying open_shared().
diff --git a/winsup/cygwin/cygthread.cc b/winsup/cygwin/cygthread.cc
index 80fa4546d..6763d7283 100644
--- a/winsup/cygwin/cygthread.cc
+++ b/winsup/cygwin/cygthread.cc
@@ -111,6 +111,9 @@ cygthread::simplestub (VOID *arg)
cygthread *info = (cygthread *) arg;
_my_tls._ctinfo = info;
info->stack_ptr = &arg;
+ /* Wait for main thread to assign 'h' */
+ while (!info->h)
+ low_priority_sleep (0);
info->ev = info->h;
info->func (info->arg == cygself ? info : info->arg);
return 0;