diff options
| author | Stefan Fritsch <sf@sfritsch.de> | 2011-12-27 19:43:09 +0100 |
|---|---|---|
| committer | Stefan Fritsch <sf@sfritsch.de> | 2011-12-27 19:43:09 +0100 |
| commit | 5b56d06a01a150fc9685e6f913774be3f9deb49f (patch) | |
| tree | 9fbfbe0313b782941f1c2c4d3cb5203817144108 /srclib/apr/poll/unix/select.c | |
| parent | 498ea95018b369e62646a98c7d7d5413b56e170c (diff) | |
| download | apache2-5b56d06a01a150fc9685e6f913774be3f9deb49f.tar.gz | |
Upstream tarball 2.2.19upstream/2.2.19
Diffstat (limited to 'srclib/apr/poll/unix/select.c')
| -rw-r--r-- | srclib/apr/poll/unix/select.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/srclib/apr/poll/unix/select.c b/srclib/apr/poll/unix/select.c index 9288de00..61a064f4 100644 --- a/srclib/apr/poll/unix/select.c +++ b/srclib/apr/poll/unix/select.c @@ -41,6 +41,21 @@ APR_DECLARE(apr_status_t) apr_poll(apr_pollfd_t *aprset, int num, apr_datatype_e set_type = APR_NO_DESC; #endif +#ifdef WIN32 + /* On Win32, select() must be presented with at least one socket to + * poll on, or select() will return WSAEINVAL. So, we'll just + * short-circuit and bail now. + */ + if (num == 0) { + (*nsds) = 0; + if (timeout > 0) { + apr_sleep(timeout); + return APR_TIMEUP; + } + return APR_SUCCESS; + } +#endif + if (timeout < 0) { tvptr = NULL; } @@ -339,6 +354,10 @@ static apr_status_t impl_pollset_poll(apr_pollset_t *pollset, */ if (pollset->nelts == 0) { (*num) = 0; + if (timeout > 0) { + apr_sleep(timeout); + return APR_TIMEUP; + } return APR_SUCCESS; } #endif |
