OSDN Git Service

* select.cc (fhandler_fifo::select_read): Fill in device specific record.
authorcgf <cgf>
Wed, 23 Dec 2009 09:35:18 +0000 (09:35 +0000)
committercgf <cgf>
Wed, 23 Dec 2009 09:35:18 +0000 (09:35 +0000)
(fhandler_fifo::select_write): Ditto.
(fhandler_fifo::select_except): Ditto.

winsup/cygwin/ChangeLog
winsup/cygwin/select.cc

index 385115a..26291f0 100644 (file)
@@ -1,3 +1,10 @@
+2009-12-22  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * select.cc (fhandler_fifo::select_read): Fill in device specific
+       record.
+       (fhandler_fifo::select_write): Ditto.
+       (fhandler_fifo::select_except): Ditto.
+
 2009-12-21  Corinna Vinschen  <corinna@vinschen.de>
 
        * path.cc (cygwin_conv_path): Add band-aid including comment to avoid
index 1cd18e7..64c3cde 100644 (file)
@@ -742,6 +742,9 @@ fhandler_pipe::select_except (select_stuff *ss)
 select_record *
 fhandler_fifo::select_read (select_stuff *ss)
 {
+  if (!ss->device_specific_pipe
+      && (ss->device_specific_pipe = new select_pipe_info) == NULL)
+    return NULL;
   select_record *s = ss->start.next;
   s->startup = start_thread_pipe;
   s->peek = peek_pipe;
@@ -755,6 +758,9 @@ fhandler_fifo::select_read (select_stuff *ss)
 select_record *
 fhandler_fifo::select_write (select_stuff *ss)
 {
+  if (!ss->device_specific_pipe
+      && (ss->device_specific_pipe = new select_pipe_info) == NULL)
+    return NULL;
   select_record *s = ss->start.next;
   s->startup = start_thread_pipe;
   s->peek = peek_pipe;
@@ -768,6 +774,9 @@ fhandler_fifo::select_write (select_stuff *ss)
 select_record *
 fhandler_fifo::select_except (select_stuff *ss)
 {
+  if (!ss->device_specific_pipe
+      && (ss->device_specific_pipe = new select_pipe_info) == NULL)
+    return NULL;
   select_record *s = ss->start.next;
   s->startup = start_thread_pipe;
   s->peek = peek_pipe;