diff options
-rw-r--r-- | README.embed | 13 | ||||
-rw-r--r-- | ev_win32.c | 7 |
2 files changed, 14 insertions, 6 deletions
diff --git a/README.embed b/README.embed index a7e03ca..b80a23a 100644 --- a/README.embed +++ b/README.embed @@ -121,12 +121,13 @@ PREPROCESSOR SYMBOLS EV_SELECT_IS_WINSOCKET - When defined to 1, the select backend will assume that select - doesn't understand file descriptors but wants osf handles on - win32 (this is the case when the select to be used is the winsock - select). This means that it will call _get_osfhandle on the fd to - convert it to an OS handle. Should not be defined on non-win32 - platforms. + When defined to 1, the select backend will assume that + select/socket/connect etc. don't understand file descriptors but + wants osf handles on win32 (this is the case when the select to + be used is the winsock select). This means that it will call + _get_osfhandle on the fd to convert it to an OS handle. Otherwise, + it is assumed that all these functions actually work on fds, even + on win32. Should not be defined on non-win32 platforms. EV_USE_POLL @@ -73,8 +73,15 @@ ev_pipe (int filedes [2]) closesocket (listener); +#if EV_SELECT_IS_WINSOCKET + filedes [0] = _open_osfhandle (sock [0], 0); + filedes [1] = _open_osfhandle (sock [1], 0); +#else + /* when select isn't winsocket, we also expect socket, connect, accept etc. + * to work on fds */ filedes [0] = sock [0]; filedes [1] = sock [1]; +#endif return 0; |