[ANN] eventmachine 0.12.6

I am happy to announce the release of eventmachine 0.12.6

This release contains numerous bug fixes and improvements. Highlights include:

- EM::connection_count API to get number of active connections in the reactor
- EM::get_max_timers API to get the max number of timers available
(use EM::set_max_timers to increase it)
- EM::Connection#get_status returns a Process::Status object
- EM::attach can be used with pipes

- Switched back to extconf for building extensions (prevents errors
   during gem install)
- Better windows support
- fixed various win32 build issues in fastfilereader and
     rubyeventmachine extensions
- official 0.12.6 windows binary gem released on rubyforge
- rake win32:gem task to build openssl and binary win32 gem
- Better error reporting
- raise ArgumentError when EM.connect/start_server are passed an
     invalid handler class
- friendlier error messages raised from the EM error_callback
- Various solaris build issues fixed

- Fixed HttpCli2 to handle basic auth and content-length:0 bodies
- Fixed latency caused when cleaning up EM::popen'd processes
- Fixed inactivity timeout bug in the pure ruby reactor
- Fixed issues in the test suite due to improper kqueue fd
   initialization/cleanup

- Bundled memcache protocol

 EM\.run\{
   cache = EM::P::Memcache\.connect 'localhost', 11211
   cache\.delete\(:a\)
   cache\.set\(:a, 'hello'\)
   cache\.get\(:a\)\{ |v| p v \}
 \}

- Optional error handler for errors raised during event callbacks

 EM\.error\_handler\{ |e|
       puts "Error raised during event loop: \#\{e\.message\}"
 \}

- EM::system wrapper for EM::popen

 EM\.run\{
   EM\.system\('ls'\)\{ |out,status| puts out if status\.exitstatus == 0 \}

   EM\.system\('sh', proc\{ |process|
     process\.send\_data\("echo hello\\n"\)
     process\.send\_data\("exit\\n"\)
   \}, proc\{ |out,status|
     puts out
   \}\)
 \}

- EM::next_tick can be used before the reactor is running

 EM\.next\_tick\{ puts "The reactor was started at \#\{Time\.now\}" \}
 sleep 2
 EM\.run\{\}

- EM::Connection now has an ssl_handshake_completed event

 require 'openssl'

 module SslHandler
   def post\_init
     start\_tls
   end
   def ssl\_handshake\_completed
     cert = get\_peer\_cert
     close\_connection unless

OpenSSL::X509::Certificate.new(cert).subject =~ /Google/
end
end

 EM\.run\{
   EM\.connect 'www.google.com', 443, SslHandler
 \}

Special thanks to the following people for making this release possible:
- Jake Douglas
- Bob Potter
- Ugo Riboni

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

Aman

Wow and I thought EM dev. was dead :slight_smile:

�- Better windows support
� �- fixed various win32 build issues in fastfilereader and
     rubyeventmachine extensions

works well on mingw now.

� �- friendlier error messages raised from the EM error_callback

Wasn't there an error_callback before that was nixed because it hurt the
speed somewhat?

Thanks for doing all that other stuff.
-=r

···

--
Posted via http://www.ruby-forum.com/\.