* select.cc (cygwin_select): Make sure that we only return -1 as an error
return. (select_stuff::wait): Semi-revert to previous method for filling out w4.
This commit is contained in:
parent
00a3124325
commit
7c15768aa5
|
@ -1,3 +1,10 @@
|
||||||
|
2012-06-03 Christopher Faylor <me.cygwin2012@cgf.cx>
|
||||||
|
|
||||||
|
* select.cc (cygwin_select): Make sure that we only return -1 as an
|
||||||
|
error return.
|
||||||
|
(select_stuff::wait): Semi-revert to previous method for filling out
|
||||||
|
w4.
|
||||||
|
|
||||||
2012-06-02 Christopher Faylor <me.cygwin2012@cgf.cx>
|
2012-06-02 Christopher Faylor <me.cygwin2012@cgf.cx>
|
||||||
|
|
||||||
* select.cc (cygwin_select): Add some comments.
|
* select.cc (cygwin_select): Add some comments.
|
||||||
|
|
|
@ -198,6 +198,8 @@ cygwin_select (int maxfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (res < -1)
|
||||||
|
res = -1;
|
||||||
syscall_printf ("%R = select(%d, %p, %p, %p, %p)", res, maxfds, readfds,
|
syscall_printf ("%R = select(%d, %p, %p, %p, %p)", res, maxfds, readfds,
|
||||||
writefds, exceptfds, to);
|
writefds, exceptfds, to);
|
||||||
return res;
|
return res;
|
||||||
|
@ -315,7 +317,7 @@ select_stuff::wait (fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
|
||||||
if ((w4[m] = pthread::get_cancel_event ()) != NULL)
|
if ((w4[m] = pthread::get_cancel_event ()) != NULL)
|
||||||
m++;
|
m++;
|
||||||
|
|
||||||
int startfds = m;
|
DWORD startfds = m;
|
||||||
/* Loop through the select chain, starting up anything appropriate and
|
/* Loop through the select chain, starting up anything appropriate and
|
||||||
counting the number of active fds. */
|
counting the number of active fds. */
|
||||||
while ((s = s->next))
|
while ((s = s->next))
|
||||||
|
@ -331,11 +333,13 @@ select_stuff::wait (fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
|
||||||
return select_error;
|
return select_error;
|
||||||
}
|
}
|
||||||
if (s->h != NULL)
|
if (s->h != NULL)
|
||||||
for (DWORD i = startfds; i <= m; i++)
|
{
|
||||||
if (i == m)
|
for (DWORD i = startfds; i < m; i++)
|
||||||
w4[m = i] = s->h;
|
if (w4[i] == s->h)
|
||||||
else if (w4[i] == s->h)
|
goto next_while;
|
||||||
break;
|
w4[m++] = s->h;
|
||||||
|
}
|
||||||
|
next_while:;
|
||||||
}
|
}
|
||||||
|
|
||||||
debug_printf ("m %d, ms %u", m, ms);
|
debug_printf ("m %d, ms %u", m, ms);
|
||||||
|
|
Loading…
Reference in New Issue