Commits on Aug 9, 2018
Commits on May 30, 2018
Commits on May 12, 2018
  1. Changelog for v1.2.7

    sodabrew committed May 12, 2018
  2. Fix crashes on large numbers of connections (#843)

    sodabrew committed May 6, 2018
    All three fd_set arguments to select must be large enough to modify
    according to the length given in the first argument to select. This can
    be done by calling rb_fd_resize on each of the fd_set arguments, which
    happens to be exactly what rb_fd_select does!
Commits on Apr 30, 2018
  1. Changelog for v1.2.6

    sodabrew committed Apr 30, 2018
  2. Tests for watch_only?

    sodabrew committed Apr 30, 2018
Commits on Apr 29, 2018
  1. EM::Connection#watch_only? (#762)

    genki authored and sodabrew committed Apr 29, 2018
    Exposes the internal IsWatchOnly value, so a caller iterating over all of the open connections
    can determine whether to close the connection using `close` or using `stop_watching`.
  2. Merge pull request #838 from sodabrew/rebase-pr-837

    sodabrew committed Apr 29, 2018
    AppVeyor updates and tests passing for Ruby 2.0 - 2.5
  3. Skip keepalive tests on Windows

    sodabrew committed Apr 29, 2018
    These all bomb out with "An operation was attempted on something that is
    not a socket" and it's not clear if the implementation for Windows is
    incorrect or if the tests are incorrect.
  4. Clear cache when appveyor.yml changes

    MSP-Greg authored and sodabrew committed Dec 24, 2017
  5. Commit misc changes for fork

    MSP-Greg authored and sodabrew committed Dec 24, 2017
  6. Add missing EM_PROTO_* variables to Java Reactor

    sodabrew committed Apr 29, 2018
    Fixes #773
    Fixes #791
    Fixes #797
Commits on Apr 28, 2018
  1. Abstract out an EmReactorInterface and create a NullEmReactor and (#572)

    sodabrew committed Apr 28, 2018
    NullEventableChannel to use when the reactor should not be running.
    This is a rebase of PR #124.
    Fixes #123
    Fixes #124
  2. Small test fix

    sodabrew committed Apr 24, 2018
  3. The unbind callback must not raise exceptions

    sodabrew committed Apr 28, 2018
    The unbind callback absolutely must not raise an exception or the reactor will crash.
    If there is no EM.error_handler, or if the error_handler retrows, then stop the reactor,
    stash the exception in $wrapped_exception, and the exception will be raised after the
    reactor is cleaned up (see the last line of
    This fixes many crash reports in the 1.2 series since #327 was merged.
Commits on Apr 24, 2018
  1. Whitespace

    sodabrew committed Apr 24, 2018
  2. Whitespace

    sodabrew committed Apr 24, 2018
Commits on Apr 22, 2018
  1. Portability for keepalive support

    sodabrew committed Apr 21, 2018
    * Add Windows and Mac OS X keepalive support
    * Use try/catch error handling
    * Throw specific error messages
    * Linux requires positive values
  2. Make EventMachine support keepalive

    gdb authored and sodabrew committed Mar 25, 2011
Commits on Apr 19, 2018
  1. Update rake-compile versions and Travis CI environments (#833)

    sodabrew committed Apr 19, 2018
    This will drop Ruby 1.8.7 and 1.9.3 from the Windows binary builds.
  2. Switch from epoll_create to epoll_create1 (#832)

    sodabrew committed Apr 19, 2018
    The original epoll_create took a size argument as a hint for how much
    kernel space to allocate for events. Since Linux 2.6.8, the size
    argument is ignored, but must be greater than zero.
    Since we also need to set CLOEXEC on the epoll fd, there is a small
    window between epoll_create and fcntl as they are separate function
    calls. Since Linux 2.6.27 and glibc 2.9, epoll_create1 accepts the
    CLOEXEC argument at creation time to eliminate this gap.
    This drops support for epoll on RHEL 5 / CentOS 5, EOL was March 2017.
    Resolves #770
Commits on Apr 18, 2018
  1. Remove using namespace std; and be explicit with std:: prefixes (#831)

    sodabrew committed Apr 18, 2018
    This resolves the conflict of socket bind() vs std::bind(), as more
    std:: functions may be introduced in future versions of C++.
    Resolves #830