… | |
… | |
3285 | involves iterating over all running async watchers or all signal numbers. |
3285 | involves iterating over all running async watchers or all signal numbers. |
3286 | |
3286 | |
3287 | =back |
3287 | =back |
3288 | |
3288 | |
3289 | |
3289 | |
3290 | =head1 Win32 platform limitations and workarounds |
3290 | =head1 WIN32 PLATFORM LIMITATIONS AND WORKAROUNDS |
3291 | |
3291 | |
3292 | Win32 doesn't support any of the standards (e.g. POSIX) that libev |
3292 | Win32 doesn't support any of the standards (e.g. POSIX) that libev |
3293 | requires, and its I/O model is fundamentally incompatible with the POSIX |
3293 | requires, and its I/O model is fundamentally incompatible with the POSIX |
3294 | model. Libev still offers limited functionality on this platform in |
3294 | model. Libev still offers limited functionality on this platform in |
3295 | the form of the C<EVBACKEND_SELECT> backend, and only supports socket |
3295 | the form of the C<EVBACKEND_SELECT> backend, and only supports socket |
… | |
… | |
3301 | things, then note that glib does exactly that for you in a very portable |
3301 | things, then note that glib does exactly that for you in a very portable |
3302 | way (note also that glib is the slowest event library known to man). |
3302 | way (note also that glib is the slowest event library known to man). |
3303 | |
3303 | |
3304 | There is no supported compilation method available on windows except |
3304 | There is no supported compilation method available on windows except |
3305 | embedding it into other applications. |
3305 | embedding it into other applications. |
|
|
3306 | |
|
|
3307 | Not a libev limitation but worth mentioning: windows apparently doesn't |
|
|
3308 | accept large writes: instead of resulting in a partial write, windows will |
|
|
3309 | either accept everything or return C<ENOBUFS> if the buffer is too large, |
|
|
3310 | so make sure you only write small amounts into your sockets (less than a |
|
|
3311 | megabyte seems safe, but thsi apparently depends on the amount of memory |
|
|
3312 | available). |
3306 | |
3313 | |
3307 | Due to the many, low, and arbitrary limits on the win32 platform and |
3314 | Due to the many, low, and arbitrary limits on the win32 platform and |
3308 | the abysmal performance of winsockets, using a large number of sockets |
3315 | the abysmal performance of winsockets, using a large number of sockets |
3309 | is not recommended (and not reasonable). If your program needs to use |
3316 | is not recommended (and not reasonable). If your program needs to use |
3310 | more than a hundred or so sockets, then likely it needs to use a totally |
3317 | more than a hundred or so sockets, then likely it needs to use a totally |