Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2009-06-28 22:23:35 +0400
committerChristopher Faylor <me@cgf.cx>2009-06-28 22:23:35 +0400
commit91000b5d66688fe62926edc72a00f00c9cda30ab (patch)
treeab91f851af48612503d3ac3e46353508bcce27b8
parentd0880d6200dc27d472c5151020f48078aae552a5 (diff)
* gendef (cleanup): Rename from 'nocr'. Remove comments and trailing spaces.
* cygwin.din: Add long-needed comment describing what dll_crt0__FP11per_process demangles to.
-rw-r--r--winsup/cygwin/ChangeLog7
-rw-r--r--winsup/cygwin/cygwin.din2
-rw-r--r--winsup/cygwin/fhandler.cc8
-rwxr-xr-xwinsup/cygwin/gendef13
-rw-r--r--winsup/cygwin/select.cc4
5 files changed, 21 insertions, 13 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index f05d2c76a..b5197b6de 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -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.
diff --git a/winsup/cygwin/cygwin.din b/winsup/cygwin/cygwin.din
index 8ccafd415..83b9d0fe6 100644
--- a/winsup/cygwin/cygwin.din
+++ b/winsup/cygwin/cygwin.din
@@ -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
diff --git a/winsup/cygwin/fhandler.cc b/winsup/cygwin/fhandler.cc
index b8aa0dd80..da656ce28 100644
--- a/winsup/cygwin/fhandler.cc
+++ b/winsup/cygwin/fhandler.cc
@@ -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;
diff --git a/winsup/cygwin/gendef b/winsup/cygwin/gendef
index 7c17a11ee..9c17010b4 100755
--- a/winsup/cygwin/gendef
+++ b/winsup/cygwin/gendef
@@ -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; $_} @_;
}
diff --git a/winsup/cygwin/select.cc b/winsup/cygwin/select.cc
index 747444884..c3dc0055b 100644
--- a/winsup/cygwin/select.cc
+++ b/winsup/cygwin/select.cc
@@ -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