This is the mail archive of the cygwin-developers@sources.redhat.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: sync with children problem


On Fri, Sep 01, 2000 at 04:09:04PM -0400, Chris Faylor wrote:
>On Fri, Sep 01, 2000 at 11:55:24PM +0400, Egor Duda wrote:
>>Hi!
>>
>>  i've  encountered  a  problem  with program doing fork-exec-waitpid,
>>namely  cvs  working  via  ssh.  the worst in situation is that when i
>>everything  run under strace, problem vanishes (and i guess this means
>>we've  got  some  race  here).  maybe child process exits too soon, or
>>something  like  that.  snapshot  taken  from  sourceware  ( DLL build
>>2000-08-25-23:55-EST)   shows  the  same  behavior.  currently,  as  a
>>workaround, i've applied this patch (that looks more like dirty hack),
>>just  to  make  things  work,  but i think that such change can likely
>>broke something else. any comments?
>
>Yep.  Sorry but the patch makes no sense.  The only effect of calling
>proc_can_be_signalled over your change would be to wait for the
>signal handler thread to call 'SetEvent (wait_sig_inited)' in the
>unpatched version.
>
>If that is never happening, then there is something seriously wrong
>somewhere.
>
>Do you have a simple test case for this scenario, even if it takes
>a bunch of repetitions to trigger?

Out of curiousity, does this change the behavior at all?

cgf

Index: sigproc.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/sigproc.cc,v
retrieving revision 1.32
diff -u -r1.32 sigproc.cc
--- sigproc.cc	2000/08/26 03:48:37	1.32
+++ sigproc.cc	2000/09/01 20:10:50
@@ -609,7 +610,7 @@
 void __stdcall
 sigproc_init ()
 {
-  wait_sig_inited = CreateEvent (&sec_none_nih, FALSE, FALSE, NULL);
+  wait_sig_inited = CreateEvent (&sec_none_nih, TRUE, FALSE, NULL);
   ProtectHandle (wait_sig_inited);
 
   /* local event signaled when main thread has been dispatched

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]