diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 21b608505..8b113e310 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,10 @@ +Mon Apr 3 14:10:44 2000 Christopher Faylor + + * fhandler.h (select_stuff): Eliminate use of 'total'. + * select.cc (cygwin_select): Ditto. + (select_stuff::wait): Use maximum size for w4 rather than calculating + what will fit. + Mon Apr 03 13:58:00 2000 Corinna Vinschen * grp.cc (parse_grp): Save empty array instead of diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h index ec19d2566..078189e4d 100644 --- a/winsup/cygwin/fhandler.h +++ b/winsup/cygwin/fhandler.h @@ -793,13 +793,11 @@ class select_stuff { public: ~select_stuff (); - select_stuff (): always_ready (0), windows_used (0), - total (0), start (0) + select_stuff (): always_ready (0), windows_used (0), start (0) { memset (device_specific, 0, sizeof (device_specific)); } BOOL always_ready, windows_used; - int total; select_record start; void *device_specific[FH_NDEV]; diff --git a/winsup/cygwin/select.cc b/winsup/cygwin/select.cc index b87adc123..de86ea32c 100644 --- a/winsup/cygwin/select.cc +++ b/winsup/cygwin/select.cc @@ -154,10 +154,10 @@ cygwin_select (int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, else select_printf ("to NULL, ms %x", ms); - select_printf ("sel.total %d, sel.always_ready %d", sel.total, sel.always_ready); + select_printf ("sel.always_ready %d", sel.always_ready); /* Degenerate case. No fds to wait for. Just wait. */ - if (sel.total == 0) + if (sel.start.next == NULL) { if (WaitForSingleObject (signal_arrived, ms) == WAIT_OBJECT_0) { @@ -225,7 +225,6 @@ select_stuff::test_and_set (int i, fd_set *readfds, fd_set *writefds, s->next = start.next; start.next = s; - total++; return 1; } @@ -247,7 +246,7 @@ select_stuff::wait (fd_set *readfds, fd_set *writefds, fd_set *exceptfds, DWORD ms) { int wait_ret; - HANDLE w4[total + 1]; + HANDLE w4[MAXIMUM_WAIT_OBJECTS]; select_record *s = &start; int m = 0;