* 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.
This commit is contained in:
Corinna Vinschen 2014-04-07 11:25:58 +00:00
parent d2ee481248
commit 584c857700
3 changed files with 16 additions and 5 deletions

@ -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> 2014-04-04 Corinna Vinschen <corinna@vinschen.de>
* ntea.cc (EA_BUFSIZ): Fix comment. * ntea.cc (EA_BUFSIZ): Fix comment.

@ -1,6 +1,6 @@
/* cygserver_ipc.h /* 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. This file is part of Cygwin.
@ -34,7 +34,7 @@ struct proc {
#ifdef __INSIDE_CYGWIN__ #ifdef __INSIDE_CYGWIN__
#include "sigproc.h" #include "sigproc.h"
extern inline void extern inline void
ipc_set_proc_info (proc &blk) ipc_set_proc_info (proc &blk, bool in_fork = false)
{ {
blk.cygpid = getpid (); blk.cygpid = getpid ();
blk.winpid = GetCurrentProcessId (); blk.winpid = GetCurrentProcessId ();
@ -43,7 +43,10 @@ ipc_set_proc_info (proc &blk)
blk.gidcnt = 0; blk.gidcnt = 0;
blk.gidlist = NULL; blk.gidlist = NULL;
blk.is_admin = false; 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__ */ #endif /* __INSIDE_CYGWIN__ */

@ -1,6 +1,6 @@
/* shm.cc: XSI IPC interface for Cygwin. /* 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. Red Hat, Inc.
This file is part of Cygwin. 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)) : client_request (CYGSERVER_REQUEST_SHM, &_parameters, sizeof (_parameters))
{ {
_parameters.in.shmop = SHMOP_shmfork; _parameters.in.shmop = SHMOP_shmfork;
ipc_set_proc_info (_parameters.in.ipcblk); ipc_set_proc_info (_parameters.in.ipcblk, true);
_parameters.in.forkargs = *p1; _parameters.in.forkargs = *p1;
} }