diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2014-04-07 15:25:58 +0400 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2014-04-07 15:25:58 +0400 |
commit | 584c857700c38c345299bb1b725845e2481f53c7 (patch) | |
tree | bf06a4e659eb2852cc2ac2109587f805ca91403a /winsup | |
parent | d2ee4812487357001f07990c30a32a1346e86178 (diff) |
* cygserver_ipc.h (ipc_set_proc_info): Add bool parameter to specify
whether or not to send signal_arrived.
* shm.cc (client_request_shm::client_request_shm): Call
ipc_set_proc_info with bool parameter set to true to not send
signal_arrived.
Diffstat (limited to 'winsup')
-rw-r--r-- | winsup/cygwin/ChangeLog | 8 | ||||
-rw-r--r-- | winsup/cygwin/cygserver_ipc.h | 9 | ||||
-rw-r--r-- | winsup/cygwin/shm.cc | 4 |
3 files changed, 16 insertions, 5 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index e6ea8b4cc..0c85cd7af 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,11 @@ +2014-04-07 Corinna Vinschen <corinna@vinschen.de> + + * cygserver_ipc.h (ipc_set_proc_info): Add bool parameter to specify + whether or not to send signal_arrived. + * shm.cc (client_request_shm::client_request_shm): Call + ipc_set_proc_info with bool parameter set to true to not send + signal_arrived. + 2014-04-04 Corinna Vinschen <corinna@vinschen.de> * ntea.cc (EA_BUFSIZ): Fix comment. diff --git a/winsup/cygwin/cygserver_ipc.h b/winsup/cygwin/cygserver_ipc.h index 4ed3cdf51..52f9f5ddd 100644 --- a/winsup/cygwin/cygserver_ipc.h +++ b/winsup/cygwin/cygserver_ipc.h @@ -1,6 +1,6 @@ /* cygserver_ipc.h - Copyright 2002, 2003, 2004, 2012, 2013 Red Hat, Inc. + Copyright 2002, 2003, 2004, 2012, 2013, 2014 Red Hat, Inc. This file is part of Cygwin. @@ -34,7 +34,7 @@ struct proc { #ifdef __INSIDE_CYGWIN__ #include "sigproc.h" extern inline void -ipc_set_proc_info (proc &blk) +ipc_set_proc_info (proc &blk, bool in_fork = false) { blk.cygpid = getpid (); blk.winpid = GetCurrentProcessId (); @@ -43,7 +43,10 @@ ipc_set_proc_info (proc &blk) blk.gidcnt = 0; blk.gidlist = NULL; blk.is_admin = false; - _my_tls.set_signal_arrived (true, blk.signal_arrived); + if (in_fork) + blk.signal_arrived = NULL; + else + _my_tls.set_signal_arrived (true, blk.signal_arrived); } #endif /* __INSIDE_CYGWIN__ */ diff --git a/winsup/cygwin/shm.cc b/winsup/cygwin/shm.cc index 226d2ee91..03213781a 100644 --- a/winsup/cygwin/shm.cc +++ b/winsup/cygwin/shm.cc @@ -1,6 +1,6 @@ /* shm.cc: XSI IPC interface for Cygwin. - Copyright 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2012, 2013 + Copyright 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2012, 2013, 2014 Red Hat, Inc. This file is part of Cygwin. @@ -85,7 +85,7 @@ client_request_shm::client_request_shm (proc *p1) : client_request (CYGSERVER_REQUEST_SHM, &_parameters, sizeof (_parameters)) { _parameters.in.shmop = SHMOP_shmfork; - ipc_set_proc_info (_parameters.in.ipcblk); + ipc_set_proc_info (_parameters.in.ipcblk, true); _parameters.in.forkargs = *p1; } |