summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog7
-rw-r--r--winsup/cygwin/fhandler.h4
-rw-r--r--winsup/cygwin/select.cc7
3 files changed, 11 insertions, 7 deletions
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 <cgf@cygnus.com>
+
+ * 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 <corinna@vinschen.de>
* 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;