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>2004-12-23 17:57:08 +0300
committerChristopher Faylor <me@cgf.cx>2004-12-23 17:57:08 +0300
commit4ee52924a61bdb2fd8ce7b64d111cf7df4d19fe3 (patch)
tree18464135531157edc28ecc4f73a7210511638611 /winsup/cygwin/pinfo.h
parent3993374d4ee8a081056fad98ebed90975970ccee (diff)
* cygthread.cc (cygthread::stub): Detect if thread function wants to release
itself here, to avoid a race. (cygthread::release): Clear more stuff. Add a diagnostic for an internal error. * cygthread.h (auto_release): New function. * pinfo.h (pinfo::remember): Add an argument to denote whether child is detached. * fork.cc (fork_parent): Reflect change in arguments to pinfo::remember. * pinfo.cc (_pinfo::exit): Signal exit more forcibly. (proc_waiter): Use cygthread::auto_release to signify that cygthread::stub should release the thread. This should avoid a race. (pinfo::alert_parent): Don't signify an error when wr_proc_pipe == NULL. * sigproc.cc (proc_subproc): Add support for PROC_DETACHED_CHILD. * sigproc.h: Ditto. * spawn.cc (spawn_guts): Specify whether child is detached or not when calling pinfo::remember.
Diffstat (limited to 'winsup/cygwin/pinfo.h')
-rw-r--r--winsup/cygwin/pinfo.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/winsup/cygwin/pinfo.h b/winsup/cygwin/pinfo.h
index d4034e154..65168329c 100644
--- a/winsup/cygwin/pinfo.h
+++ b/winsup/cygwin/pinfo.h
@@ -168,9 +168,10 @@ public:
#ifndef _SIGPROC_H
int remember () {system_printf ("remember is not here"); return 0;}
#else
- int remember ()
+ int remember (bool detach)
{
- int res = proc_subproc (PROC_ADDCHILD, (DWORD) this);
+ int res = proc_subproc (detach ? PROC_DETACHED_CHILD : PROC_ADDCHILD,
+ (DWORD) this);
destroy = res ? false : true;
return res;
}