- #251 Intermittent SEGV during GC. (@boazsegev)
- #241
Possible bug with Ruby >= 2.7.0 and
GC.compact
. (@boazsegev)
-
Bump minimum supported Ruby to 2.3. (@ioquatix)
-
Assorted fixes for TruffleRuby & JRuby. (@eregon, @olleolleolle) Possible bug with Ruby >= 2.7.0 and
GC.compact
-
Update libev to v4.25. (@ioquatix)
-
Bind to ephemeral (port 0) for more reliable specs. (@ioquatix)
-
Improve handling of SSL sockets and related specs. (@MSP-Greg)
-
#151
NIO::Selector
: Support for enumerating and configuring backend (@tarcieri) -
#157 Windows / MinGW test failure - fix spec_helper.rb (@MSP-Greg)
-
#162 Don't build the C extension on Windows (@larskanis)
-
#164 Fix NIO::ByteBuffer leak (@HoneyryderChuck)
-
#170 Avoid CancelledKeyExceptions on JRuby (@HoneyryderChuck)
-
#177 Fix
NIO::ByteBuffer
string conversions on JRuby (@tarcieri) -
#179 Fix argument error when running on ruby 2.5.0 (@tompng)
-
#180 ext/nio4r/extconf.rb: check for port_event_t in port.h (fixes #178) (@tarcieri)
-
#130 Add -fno-strict-aliasing flag when compiling C ext. (@junaruga)
-
#146 Use non-blocking select when a timeout of 0 is given. (@tarcieri)
-
#53 Limit lock scope to prevent recursive locking. (@johnnyt)
-
#95 NIO::ByteBuffer Google Summer of Code project. (@UpeksheJay, @tarcieri)
-
#111 NIO::Selector#backend introspection support. (@tarcieri)
-
#119 Disambiguate wakeup vs timeout (fixes #63, #66). (@tarcieri)
-
Drop Ruby 2.0 and 2.1 support, require Ruby 2.2.2+. (@tarcieri)
- Fix bug in the JRuby backend which cases indefinite blocking when small timeout values are passed to the selector
- Add NIO::Monitor#interests= API for changing interests. Contributed by Upekshe Jayasekera as a Google Summer of Code project.
- Update to libev 4.22
- Update to libev 4.20
- Fall back to io.h if unistd.h is not found
- RSpec updates
- RuboCop
- Update to libev 4.19
- Do not call ev_io_stop on monitors if the loop is already closed
- Fix C compiler warnings
- Eliminate Ruby warnings about @lock_holder
- Windows improvements
- Better support for Ruby 2.1
- Automatically require 'set'
- Update to RSpec 3
- Have Selector#register obtain the actual IO from a Monitor object because Monitor#initialize might convert it.
- Drop 1.8 support
- Fix segv when attempting to register to a closed selector
- Fix Windows support on Ruby 2.0.0
- Upgrade to libev 4.15
- Fix for JRuby on Windows
- Fix botched gem release
- Fix return values for Selector_synchronize and Selector_unlock
- REALLY have thread synchronization when closing selectors ;)
- Attempt to work around packaging problems with bundler-api o_O
- Thread synchronization when closing selectors
- OpenSSL::SSL::SSLSocket support
- NIO::Selector#select_each removed
- Remove event buffer
- Patch GIL unlock directly into libev
- Re-release since 0.3.2 was botched :(
- Prevent CancelledKeyExceptions on JRuby
- NIO::Selector#select now takes a block and behaves like select_each
- NIO::Selector#select_each is now deprecated and will be removed
- Closing monitors detaches them from their selector
- Java extension for JRuby
- Upgrade to libev 4.11
- Bugfixes for zero/negative select timeouts
- Handle OP_CONNECT properly on JRuby
- Raise IOError if asked to wake up a closed selector
- Implement wakeup mechanism using raw pipes instead of ev_async, since ev_async likes to cause segvs when used across threads (despite claims in the documentation to the contrary)
- NIO::Monitor#readiness API to query readiness, along with #readable? and #writable? helper methods
- NIO::Selector#select_each API which avoids memory allocations if possible
- Bugfixes for the JRuby implementation
- Initial release. Merry Christmas!