]> sourceware.org Git - newlib-cygwin.git/commitdiff
* sigproc.cc (init_sig_pipe): Add retry loop.
authorChristopher Faylor <me@cgf.cx>
Tue, 10 Aug 2010 16:44:37 +0000 (16:44 +0000)
committerChristopher Faylor <me@cgf.cx>
Tue, 10 Aug 2010 16:44:37 +0000 (16:44 +0000)
winsup/cygwin/ChangeLog
winsup/cygwin/sigproc.cc

index f9b385fb5db31640b9f403bf42b38cae960fe12b..207f083fd23e124bbec03b7a66144780a0afbd74 100644 (file)
@@ -1,3 +1,7 @@
+2010-08-10  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * sigproc.cc (init_sig_pipe): Add retry loop.
+
 2010-08-09  Christopher Faylor  <me+cygwin@cgf.cx>
 
        * cygheap.h (cygheap_fdmanip): Delete fh and use fd index into
index df797808e650ac5f42529d8e410cb19f82ad0441..a8bb4f34009a1fedd2ad1ca0cbe6a668f6853eca 100644 (file)
@@ -1153,15 +1153,16 @@ pending_signals::next ()
 /* Called separately to allow stack space reutilization by wait_sig.
    This function relies on the fact that it will be called after cygheap
    has been set up.  For the case of non-dynamic DLL initialization this
-   means that it relies on the implicit serialization guarantted by being
+   means that it relies on the implicit serialization guaranteed by being
    run as part of DLL_PROCESS_ATTACH. */
 static void __attribute__ ((noinline))
 init_sig_pipe()
 {
   char char_sa_buf[1024];
   PSECURITY_ATTRIBUTES sa_buf = sec_user_nih ((PSECURITY_ATTRIBUTES) char_sa_buf, cygheap->user.sid());
-  if (!CreatePipe (&my_readsig, &my_sendsig, sa_buf, 0))
-    api_fatal ("couldn't create signal pipe, %E");
+  for (int i = 5; i > 0 && !CreatePipe (&my_readsig, &my_sendsig, sa_buf, 0); i--)
+    if (i == 1)
+      api_fatal ("couldn't create signal pipe, %E");
   ProtectHandle (my_readsig);
 }
 
This page took 0.034905 seconds and 5 git commands to generate.