libevent IOCP-backed implementations

Issue #54 resolved
Charlotte Dunois created an issue

libevent has added support for Windows I/O Completion Ports-backed implementations in 2.0. Have you thought or looked into enabling EVENT_BASE_FLAG_STARTUP_IOCP to use IOCP-backed implementations instead of select()-backed implementations?

Using IOCP should allow us to support file descriptors (and possibly sockets) on Windows (#53). I'm not very familiar with libevent and whether there must be more done in order to use IOCP, but I don't think this requires too many changes to make pecl-event support it.

Comments (2)

  1. Ruslan Osmanov repo owner

    Thanks.

    Added EventConfig::setFlags() method. You can pass a bit mask of EventBase::* constants to it, e.g.: $config->setFlags(EventBase::STARTUP_IOCP).

    I guess, it'd be difficult for you to build the extension on Windows. I have no the appropriate build environment for WIndows right now. So I'll upload a new PECL package to http://pecl.php.net/package/event and let the PECL system to do the rest of the work.

  2. Charlotte Dunois reporter

    Thanks for your fast work!

    I've already built php-uv before, but I can't seem to be able to get a libevent nmake or Visual Studio solution with CMake so quickly, so I'll postpone it until PECL built the DLL. :)

  3. Log in to comment