OSDN Git Service

* gendef (cleanup): Rename from 'nocr'. Remove comments and trailing spaces.
authorcgf <cgf>
Sun, 28 Jun 2009 18:23:35 +0000 (18:23 +0000)
committercgf <cgf>
Sun, 28 Jun 2009 18:23:35 +0000 (18:23 +0000)
* cygwin.din: Add long-needed comment describing what dll_crt0__FP11per_process
demangles to.

winsup/cygwin/ChangeLog
winsup/cygwin/cygwin.din
winsup/cygwin/fhandler.cc
winsup/cygwin/gendef
winsup/cygwin/select.cc

index f05d2c7..b5197b6 100644 (file)
@@ -1,3 +1,10 @@
+2009-06-28  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * gendef (cleanup): Rename from 'nocr'.  Remove comments and trailing
+       spaces.
+       * cygwin.din: Add long-needed comment describing what
+       dll_crt0__FP11per_process demangles to.
+
 2009-06-26  Corinna Vinschen  <corinna@vinschen.de>
 
        * wincap.h (wincaps::has_broken_alloc_console): New element.
index 8ccafd4..83b9d0f 100644 (file)
@@ -273,7 +273,7 @@ dlclose SIGFE
 dlerror NOSIGFE
 dlfork NOSIGFE
 _dll_crt0@0 NOSIGFE
-dll_crt0__FP11per_process NOSIGFE
+dll_crt0__FP11per_process NOSIGFE # dll_crt0(per_process *)
 dll_dllcrt0 NOSIGFE
 dll_entry@12 NOSIGFE
 dll_noncygwin_dllcrt0 NOSIGFE
index b8aa0dd..da656ce 100644 (file)
@@ -1652,7 +1652,7 @@ fhandler_base::setup_overlapped (bool doit)
   if (doit)
     {
       set_overlapped (ov);
-      res = !!(ov->hEvent = CreateEvent (&sec_none_nih, true, false, NULL));
+      res = !!(ov->hEvent = CreateEvent (&sec_none_nih, true, true, NULL));
     }
   else
     {
@@ -1758,12 +1758,6 @@ fhandler_base::wait_overlapped (bool inres, bool writing, DWORD *bytes, DWORD le
       debug_printf ("EOF");
     }
 
-  /* Make sure the event is unsignalled (this is a potential race in a multi-threaded
-     app.  Sigh.).  Must do this after WFMO and GetOverlappedResult or suffer
-     occasional sporadic problems:
-       http://cygwin.com/ml/cygwin/2008-08/msg00511.html */
-  if (err != ERROR_IO_PENDING)
-    ResetEvent (get_overlapped ()->hEvent);
   if (writing && (err == ERROR_NO_DATA || err == ERROR_BROKEN_PIPE))
     raise (SIGPIPE);
   return res;
index 7c17a11..9c17010 100755 (executable)
@@ -8,7 +8,8 @@
 # details.
 #
 use strict;
-sub nocr(@);
+sub cleanup(@);
+
 my $in = shift;
 my $tls_offsets = shift;
 my $out = shift;
@@ -24,11 +25,11 @@ require $tls_offsets;
 open(IN, $in) or die "$0: couldn't open \"$in\" - $!\n";
 my @top = ();
 while (<IN>) {
-    push(@top, nocr $_);
+    push(@top, cleanup $_);
     last if /^\s*exports\s*$/i;
 }
-my $libline = nocr scalar(<IN>);
-my @in = nocr <IN>;
+my $libline = cleanup scalar(<IN>);
+my @in = cleanup <IN>;
 close(IN);
 
 my %sigfe = ();
@@ -456,6 +457,8 @@ _longjmp:
 EOF
 }
 
-sub nocr(@) {
+sub cleanup(@) {
     map {s/\r//g; $_} @_;
+    map {s/#.*//g; $_} @_;
+    map {s/[ \t]+$//g; $_} @_;
 }
index 7474448..c3dc005 100644 (file)
@@ -513,6 +513,10 @@ out:
       else if (fh->get_device () == FH_PIPER)
        select_printf ("%s, select for write on read end of pipe",
                       fh->get_name ());
+      else if (fh->get_overlapped ()->hEvent
+              && WaitForSingleObject (fh->get_overlapped ()->hEvent, 0)
+                  != WAIT_OBJECT_0)
+       s->write_ready = false;
       else
        {
 #if 0