From 25e5803d3540269d30cdde5cc5301d6f5e8c8821 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Fri, 14 Sep 2012 03:32:52 +0000 Subject: [PATCH] * cygthread.cc (cygthread::stub): Remove old, unnecessary, FIXMEd code. * spawn.cc (child_info_spawn::worker): Avoid calling close_all_files() twice. --- winsup/cygwin/ChangeLog | 6 ++++++ winsup/cygwin/cygthread.cc | 6 ------ winsup/cygwin/release/1.7.17 | 4 ++++ winsup/cygwin/spawn.cc | 3 ++- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index b35df3805..f12459ac1 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,9 @@ +2012-09-13 Christopher Faylor + + * cygthread.cc (cygthread::stub): Remove old, unnecessary, FIXMEd code. + * spawn.cc (child_info_spawn::worker): Avoid calling close_all_files() + twice. + 2012-09-02 Jin-woo Ye Corinna Vinschen diff --git a/winsup/cygwin/cygthread.cc b/winsup/cygwin/cygthread.cc index 5afc42954..2dbca06d4 100644 --- a/winsup/cygwin/cygthread.cc +++ b/winsup/cygwin/cygthread.cc @@ -90,12 +90,6 @@ cygthread::stub (VOID *arg) #endif else { - if (exiting) - { - info->inuse = false; // FIXME: Do we need this? - return 0; - } - info->callfunc (false); HANDLE notify = info->notify_detached; diff --git a/winsup/cygwin/release/1.7.17 b/winsup/cygwin/release/1.7.17 index 90df145be..ce2f2a0aa 100644 --- a/winsup/cygwin/release/1.7.17 +++ b/winsup/cygwin/release/1.7.17 @@ -24,3 +24,7 @@ Bug fixes: - Prefer to call WSARecvMsg from recvmsg if possible. Fixes: http://cygwin.com/ml/cygwin/2012-07/msg00662.html + +- Correct hang typified by running "procps" after Cygwin has started a + Windows process. + Fixes: http://cygwin.com/ml/cygwin/2012-05/threads.html#00349 diff --git a/winsup/cygwin/spawn.cc b/winsup/cygwin/spawn.cc index 81f8bdc6a..5d60823b3 100644 --- a/winsup/cygwin/spawn.cc +++ b/winsup/cygwin/spawn.cc @@ -867,7 +867,8 @@ loop: } else { - close_all_files (true); + if (iscygwin ()) + close_all_files (true); if (!my_wr_proc_pipe && WaitForSingleObject (pi.hProcess, 0) == WAIT_TIMEOUT) wait_for_myself ();