[ANN] eventmachine 0.12.10


Aman Gupta

I am happy to announce the release of eventmachine 0.12.10. Gems (including
binary builds for win32 and jruby) have been uploaded to rubyforge and shou=
be available via `gem install` shortly.

Since 0.12.8, we've had over 130 patches with numerous bug fixes, improveme=
and several new features. Highlights include:

=A0- Improved Performance
=A0 =A0- subclasses of EM::Connection are not created unless necessary
=A0 =A0- prevent unnecessary system calls to epoll_ctl/kevent
=A0 =A0- the reactor uses numeric signatures instead of strings,
=A0 =A0 =A0resulting in a ~15% overall performance boost

=A0- API Changes
=A0 =A0- EM.reactor_thread accessor for the reactor's thread
=A0 =A0- EM.next_tick and EM.schedule are now thread-safe
=A0 =A0- EM::connect will raise a more better EM::ConnectionError with deta=
=A0 =A0- EM.epoll=3D/kqueue=3D will raise EM::Unsupported when unavailable
=A0 =A0- improved the cryptic "no timer" exception and increased the
=A0 =A0 =A0default limit to 10k timers
=A0 =A0- bugfix and improved performance for EM.current_time
=A0 =A0- EM.add_periodic_timer returns PeriodicTimer object
=A0 =A0- EM::Connection#get_sock_opt wrapper for getsockopt()
=A0 =A0- added EM.watch for notifications about file descriptors
=A0 =A0 =A0 =A0for notify_read/writable events, you cannot use EM.attach
=A0 =A0 =A0 =A0EM.watch(fd, Watcher){ |c| c.notify_readable =3D true }
=A0 =A0- EM::Connection#pending_connect_timeout=3D setter (defaults to 20s)
=A0 =A0- EM.bind_connect can bind to random source port using nil
=A0 =A0 =A0 =A0EM.bind_connect('local.ip', nil, 'remote.ip', 1234)
=A0 =A0- added EM::Connection#pause/resume/paused? to pause and resume I/O
=A0 =A0- EM::Connection#proxy_incoming_to takes an optional buffer size for
=A0 =A0 =A0limiting RAM usage when dealing with slow clients

=A0- Protocol Additions
=A0 =A0- allow overriding the serializer used for ObjectProtocol
=A0 =A0- basic SOCKS v4 client protocol implementation

=A0- Platform Support
=A0 =A0 =A0AIX, OpenBSD, Solaris
=A0 =A0 =A0 =A0- minor fixes to support these platforms
=A0 =A0 =A0Windows
=A0 =A0 =A0 =A0- fix missing unbind events on refused outbound connections
=A0 =A0 =A0 =A0- fix issues with ruby 1.9 on windows

=A0- Ruby Support
=A0 =A0 =A0JRuby
=A0 =A0 =A0 =A0- major overhaul of the jruby reactor for better compat and =
=A0 =A0 =A0 =A0- basic EM.attach/watch support on the Sun JVM
=A0 =A0 =A0 =A0- fully compatible with JRuby 1.4
=A0 =A0 =A0Ruby 1.9
=A0 =A0 =A0 =A0- fix bugs trying to kill the EM.defer threadpool
=A0 =A0 =A0 =A0- fix signal handling to catch ctrl+c and other signals grac=
=A0 =A0 =A0Rubinius
=A0 =A0 =A0 =A0- minor changes to build a compatible C extension

Special thanks to the following people for making this release possible:
=A0- Bernd Ahlers
=A0- Chris Turner
=A0- Dan Mayer
=A0- Perry Smith
=A0- Bill 'spatulasnout' Kelly
=A0- Hemant 'gnufied' Kumar
=A0- Jake 'yakischloba' Douglas
=A0- James 'raggi' Tucker
=A0- coderrr

The rdoc has been updated and is available at http://eventmachine.rubyforge=




Roger Pack

� �- EM::Connection#pending_connect_timeout= setter (defaults to 20s)

An excellent addition. And a much more sane default.

As a note with the devkit and mingw I get:

cmain.cpp: In function 'int evma_send_file_data_to_connection(long
unsigned int, const char*)':
cmain.cpp:752:6: error: cannot convert 'stat*' to '_stati64*' for
argument '2' to 'int _fstati64(int, _stati64*)'
make.exe: *** [cmain.o] Error 1


Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads