Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2006-03-18 22:28:59 +0300
committerChristopher Faylor <me@cgf.cx>2006-03-18 22:28:59 +0300
commit3b69aaa9326376641b02e43556b6c9c706c7467f (patch)
treeb7f5e28899255acdceca4d58e15f453681ea0d9c
parenta939686807dd8e832939fddf514040fdba7077d8 (diff)
* pinfo.h (EXITCODE_OK): Define new constant.
* sigproc.cc (child_info::sync): Return EXITCODE_OK if entering with exit_code == 0. (sig_send): Don't complain if sending signals while blocked if the sender isn't in the main thread.
-rw-r--r--winsup/cygwin/ChangeLog8
-rw-r--r--winsup/cygwin/pinfo.h1
-rw-r--r--winsup/cygwin/sigproc.cc4
3 files changed, 12 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index aaeac479b..17be5b5d8 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,13 @@
2006-03-18 Christopher Faylor <cgf@timesys.com>
+ * pinfo.h (EXITCODE_OK): Define new constant.
+ * sigproc.cc (child_info::sync): Return EXITCODE_OK if entering with
+ exit_code == 0.
+ (sig_send): Don't complain if sending signals while blocked if the
+ sender isn't in the main thread.
+
+2006-03-18 Christopher Faylor <cgf@timesys.com>
+
* child_info.h (CURR_CHILD_INFO_MAGIC): Regenerate.
(child_info::retry): Move here from fork subclass.
(child_info::exit_code): New field.
diff --git a/winsup/cygwin/pinfo.h b/winsup/cygwin/pinfo.h
index 93a862688..fbd73dab9 100644
--- a/winsup/cygwin/pinfo.h
+++ b/winsup/cygwin/pinfo.h
@@ -35,6 +35,7 @@ enum picom
#define EXITCODE_SET 0x8000000
#define EXITCODE_NOSET 0x4000000
#define EXITCODE_RETRY 0x2000000
+#define EXITCODE_OK 0x1000000
class fhandler_pipe;
diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc
index a213a5607..a82e90002 100644
--- a/winsup/cygwin/sigproc.cc
+++ b/winsup/cygwin/sigproc.cc
@@ -520,7 +520,7 @@ sig_send (_pinfo *p, int sig)
SetEvent (sigCONT);
sigheld = false;
}
- else
+ else if (&_my_tls == _main_tls)
{
#ifdef DEBUGGING
system_printf ("signal %d sent to %p while signals are on hold", sig, p);
@@ -886,6 +886,8 @@ child_info::sync (pid_t pid, HANDLE& hProcess, DWORD howlong)
DWORD
child_info::proc_retry (HANDLE h)
{
+ if (!exit_code)
+ return EXITCODE_OK;
switch (exit_code)
{
case STILL_ACTIVE: /* shouldn't happen */