Files | Admin

Notes:

Release Name: eventmachine 0.12.6

Notes:
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




Changes: commit de5e5a18885530db905935e1f57b3682752961a3 Author: Aman Gupta <aman@tmm1.net> Date: Sun Mar 8 21:15:19 2009 -0700 Version bump, 0.12.7 for repo builds commit 35f1970b40f5634ed6e28df331b103db0c6e2358 Author: Aman Gupta <aman@tmm1.net> Date: Sun Mar 8 21:03:36 2009 -0700 eventmachine 0.12.6 commit 92eca0ac7ba40b9c6aa5f3abd61235d0f61428cc Author: Aman Gupta <aman@tmm1.net> Date: Sun Mar 8 20:59:16 2009 -0700 rake win32:gem task to build openssl and a win32 binary gem (requires msysgit, activestate perl and vc6) commit d753119bae9aefcbe12e9d464e1fe919b3a4afa6 Author: Aman Gupta <aman@tmm1.net> Date: Sun Mar 8 20:42:40 2009 -0700 Fix evma_get_subprocess_pid for windows commit 8d52c76bd1d10c14c05fd646aa3720556c586581 Author: Aman Gupta <aman@tmm1.net> Date: Sun Mar 8 18:18:30 2009 -0700 Package all checked-in files into gem commit f5b04cdf9d9bb673ec847787af52fe3ca1a0472d Author: Aman Gupta <aman@tmm1.net> Date: Sun Mar 8 16:38:39 2009 -0700 More solaris build fixes. Error: Could not find a match for std::multimap<...>::insert(std::pair<...,...>) Compiler: Sun C++ 5.9 Cause: the multimap classes don't have a method insert(pair<First, Second>), only insert(pair<const First, Second>). Solution: Instead of insert(make_pair(first, second)), use insert(mm::value_type(first, second)). commit c10008228c980a82044c7bcfb92b7d2331c28f80 Author: Aman Gupta <aman@tmm1.net> Date: Sun Mar 8 01:42:08 2009 -0800 improve EM.connection_count test commit d50c06092fc64fe787a9f2f8d5612c558d345462 Author: Bob Potter <potterr@bivouac.local> Date: Sun Mar 8 03:40:15 2009 -0500 Correctly initialize kqfd (so we don't close() stdin when deconstructing EventMachine) Signed-off-by: Aman Gupta <aman@tmm1.net> commit f264498db8f328bf7cdcd5eddd2fa9c5ac970f19 Author: Aman Gupta <aman@tmm1.net> Date: Sun Mar 8 00:02:46 2009 -0800 Add EM.system wrapper for EM::popen (#89) commit 41921a11c55ab14a7d0d1a0c167a644cfc84b854 Author: Aman Gupta <aman@tmm1.net> Date: Sat Mar 7 22:29:23 2009 -0800 Comment out old EM::original_event_callback and EM.handle_runtime_error + associated test commit c5f6f47b6662b9516a4d9ed9fd6092262a7991ec Author: Aman Gupta <aman@tmm1.net> Date: Sat Mar 7 22:22:29 2009 -0800 Improve EM.error_handler test commit 9a7a7df013e64dd7e043429c326add191887ff7a Author: Aman Gupta <aman@tmm1.net> Date: Sat Mar 7 22:21:56 2009 -0800 Fix inactivity_timeout issue in pure ruby reactor (#108) commit 7775e1d9dee5d1637fb88edb595fc567eb799dd7 Author: Aman Gupta <aman@tmm1.net> Date: Sat Mar 7 22:14:25 2009 -0800 Reorganize ruby event_callback to make it clear certain events are handled in C commit f55ed77b85101e17e22ef49018e149916a0f2fd0 Author: Aman Gupta <aman@tmm1.net> Date: Sat Mar 7 22:12:07 2009 -0800 Add some comments to EM::connect/start_server unix/tcp detection logic commit 161c3f5440a4f6b8c7247680d3d393404d0f2f1b Author: Aman Gupta <aman@tmm1.net> Date: Sat Mar 7 22:11:10 2009 -0800 Friendlier errors in event_callback commit 5003b340cbacc09d4b5d6679bc023279e9797ab5 Author: Aman Gupta <aman@tmm1.net> Date: Sat Mar 7 21:56:58 2009 -0800 Fix compile warning with EM.error_handler (#109) commit 1964dbfc8adb14acf4b43398888b3e47aacdf12c Author: Aman Gupta <aman@tmm1.net> Date: Fri Mar 6 11:57:44 2009 -0800 Add documentation for EM::popen commit 9b4ef82f003eee551a11988612e160fe63324e0b Author: Jake Douglas <jakecdouglas@gmail.com> Date: Thu Mar 5 13:13:28 2009 -0800 check that the passed connection handler is of the proper class (subclass of EM::Connection), and added test for this. Signed-off-by: Aman Gupta <aman@tmm1.net> commit 1197a080440eb1ae04c15a79c3df258ec5a4f00a Author: Aman Gupta <aman@tmm1.net> Date: Thu Mar 5 13:19:18 2009 -0800 More solaris build issues fixed commit 51f0398cee64a3b30d5304d9128dbb27830d46a6 Author: Jake Douglas <jakecdouglas@gmail.com> Date: Wed Mar 4 18:49:27 2009 -0800 updated EM.connection_count documentation Signed-off-by: Aman Gupta <aman@tmm1.net> commit 711313e92869b7295121ffbb56420f4c703f739e Author: Jake Douglas <jakecdouglas@gmail.com> Date: Wed Mar 4 18:18:14 2009 -0800 Added tests for EM::Connection#get_peer_cert, EM::Connection#ssl_handshake_completed, and EM.connection_count Signed-off-by: Aman Gupta <aman@tmm1.net> commit 15bcb962c3cee4e72899e1df09436a6310116314 Author: Aman Gupta <aman@tmm1.net> Date: Tue Mar 3 15:02:24 2009 -0800 Fix solaris build issues commit 8c0c81919675d834d2f5908d41bcbbea90e8eee4 Author: Aman Gupta <aman@tmm1.net> Date: Tue Mar 3 13:20:55 2009 -0800 Fix EM.attach to work with pipes (connection_completed no longer fires for attached file descriptors) commit e7ab11aea9d4efc01429cbdb9d247f482626c4e8 Author: Aman Gupta <aman@tmm1.net> Date: Sun Mar 1 04:54:39 2009 -0800 Fix PipeDescriptor::~PipeDescriptor() to avoid long nanosleeps commit 823aa43dd198fb7be9d9157a5ffbdcfef80b2bf4 Author: raggi <jftucker@gmail.com> Date: Tue Mar 3 07:30:48 2009 +0000 Backfill ChangeLog commit 7516e21d652b77d1bcb7045f7ade36b9efd0f574 Author: raggi <jftucker@gmail.com> Date: Tue Mar 3 06:44:46 2009 +0000 remove unnecessary defines and checks in fastfilereaders extconf commit 9d78167ee2fdf7ae946408aa173eccc35f2ac27d Merge: 3f25d47... c528f33... Author: raggi <jftucker@gmail.com> Date: Tue Mar 3 06:35:48 2009 +0000 Merge branch 'solaris' * solaris: Add shared compile option for sun compiler commit 3f25d477536b353b2484f0c85531466db7d4ad20 Merge: 07c7326... baf9aac... Author: raggi <jftucker@gmail.com> Date: Sun Mar 1 15:02:34 2009 +0000 Merge branch 'master' of git@github.com:eventmachine/eventmachine * 'master' of git@github.com:eventmachine/eventmachine: Switch back to extconf for compiling gem extensions added ensure_eventmachine to evma_get_connection_count and documentation w/ stub method EM.connection_count Added EM.get_connection_count for number of current connections held by the reactor. Added a reason code to the unbind event. So far this is unimplemented. commit 07c732609edb45bfc824a56f40024835602df1ec Author: raggi <jftucker@gmail.com> Date: Sun Mar 1 15:01:03 2009 +0000 fixed a small bug with basic auth (cherry-pick conflict merge from mmmurf (closes #92)) Conflicts: ext/ed.h (rejected) commit baf9aaca1aa21f7e8032bda89522e53558046f4e Author: Aman Gupta <aman@tmm1.net> Date: Sun Mar 1 04:44:53 2009 -0800 Switch back to extconf for compiling gem extensions commit 76c6c45278a72f046b4fc37eca9f8b9fc056c365 Author: Jake Douglas <jakecdouglas@gmail.com> Date: Fri Feb 27 17:29:22 2009 -0800 added ensure_eventmachine to evma_get_connection_count and documentation w/ stub method EM.connection_count Signed-off-by: Aman Gupta <aman@tmm1.net> commit 4af677cd25f4933e464ec0ceb5c4d93bab67cba7 Author: Jake Douglas <jakecdouglas@gmail.com> Date: Thu Feb 26 13:28:35 2009 -0800 Added EM.get_connection_count for number of current connections held by the reactor. Signed-off-by: Aman Gupta <aman@tmm1.net> commit 6b215652799788152eca33e91d80be380438131a Author: francis <francis@bayshorenetworks.com> Date: Thu Feb 26 16:43:01 2009 -0500 Added a reason code to the unbind event. So far this is unimplemented. commit 4b490541adf6e6924ed1d21756aaa8b81c66b48c Author: raggi <jftucker@gmail.com> Date: Wed Feb 25 03:28:12 2009 +0000 Allow next_tick to be used to pre-schedule reactor operations before EM.run commit 06a4f123ee40b5de89cb7dd4f9e0a18ea94ff7a0 Author: Ugo Riboni <nerochiaro@neurostechnology.com> Date: Fri Feb 20 14:47:51 2009 +0100 Return success on content-length = 0 instead of start waiting forever Signed-off-by: raggi <jftucker@gmail.com> commit bbad991e006b7e5d364fca92fa5fc59cd60992c6 Author: raggi <jftucker@gmail.com> Date: Fri Feb 20 17:29:14 2009 +0000 Support miniunit commit ba1397ea6c2968992a1885f745de291de9799d9d Author: Aman Gupta <aman@tmm1.net> Date: Thu Feb 19 17:20:39 2009 -0800 Update protocols/memcache: fix parsing issues, add delete command commit 9df7a18601b03ee28925ba737badde7dee12c8d5 Author: Aman Gupta <aman@tmm1.net> Date: Thu Feb 19 15:37:55 2009 -0800 Add catch-all EM.error_handler commit 9863f24e484764807606e070bef001793650b491 Author: Aman Gupta <aman@tmm1.net> Date: Sat Feb 14 16:30:40 2009 -0800 Fix "no test specified" errors in test_kb commit 3201fc2024539c80f81ae26ed3589451cf5b2ca2 Author: Aman Gupta <aman@tmm1.net> Date: Thu Feb 12 15:52:37 2009 -0800 Reset Memcache protocol state on reconnect commit aef5151d5a0fdba6f3f3d7ea748e18027694eb6c Author: Aman Gupta <aman@tmm1.net> Date: Thu Feb 12 15:48:38 2009 -0800 Add EM::Protocols::Memcache with simple get/set functionality commit ddc650a52cbcc7a96cbea681d3cd0cea4b2c0501 Author: Aman Gupta <aman@tmm1.net> Date: Wed Feb 11 11:53:45 2009 -0800 get_status returns a Process::Status object (#96) commit 3a071192209b4ab21ecad30b2f63db9db7f4732a Author: Jake Douglas <jakecdouglas@gmail.com> Date: Wed Feb 11 06:59:57 2009 -0800 Fixed potential memory leak in t_get_peer_cert Signed-off-by: raggi <jftucker@gmail.com> commit c528f33773dc1c413d8b261af52dd4f2d2efd407 Author: raggi <jftucker@gmail.com> Date: Wed Feb 11 10:11:54 2009 +0000 Add shared compile option for sun compiler commit 8162a1859b7aca09fc7fc6d5a1aa817d319cf2bd Author: Aman Gupta <aman@tmm1.net> Date: Tue Feb 10 23:32:03 2009 -0800 Add tests for EM.get_max_timers commit bc2299025747104c689a77eb5d0a439b5be79664 Author: Aman Gupta <aman@tmm1.net> Date: Tue Feb 10 23:24:54 2009 -0800 Add EM.get_max_timers (#61) commit f79e0fff4aa58e8e9480ec48fd305de1d24553dc Author: Jake Douglas <jakecdouglas@gmail.com> Date: Tue Feb 10 20:16:09 2009 -0800 Added documentation to #ssl_handshake_complete and #get_peer_cert methods. Signed-off-by: Aman Gupta <aman@tmm1.net> commit 2ac6aa177e847400bdd75f3ad7e8d8b42c8a1786 Author: francis <francis@bayshorenetworks.com> Date: Tue Feb 10 23:53:27 2009 -0500 fixed stupid bug commit 4478a692916bec09f150c421f0092efd6703dadb Author: Jake Douglas <jakecdouglas@gmail.com> Date: Tue Feb 10 15:38:43 2009 -0800 Working get_peer_cert method. Returns the certificate as a Ruby String in PEM format. Signed-off-by: Aman Gupta <aman@tmm1.net> commit 303d5af569ce7530fbedbc07342a796e872de15e Author: francis <francis@bayshorenetworks.com> Date: Tue Feb 10 20:05:44 2009 -0500 Added a new event to indicate completion of SSL handshake on TCP connections commit ff5d7383c4a086626be40449082527f2e5d83e2a Author: raggi <jftucker@gmail.com> Date: Tue Feb 10 12:15:04 2009 +0000 suppress warnings commit 58b6231a57a83270cf276464ce76b16b600ad122 Author: raggi <jftucker@gmail.com> Date: Tue Feb 10 12:11:34 2009 +0000 Support win32 version of Map/UnmapViewOfFile commit 86c6b6a9bd55a0e9295398ea7edf9c9c06784bd8 Author: raggi <jftucker@gmail.com> Date: Tue Feb 10 12:11:10 2009 +0000 Cleanup ignores commit 6f44a039cc64967c224f4b29c6c3a04417eecdfe Author: raggi <jftucker@gmail.com> Date: Tue Feb 10 11:07:05 2009 +0000 Fixup extconf.rb for fastfilereader. Deprecate pointless copyright on build scripts commit 14a85a7137373bf26c262fa0f00c967051bf6dc5 Author: Aman Gupta <aman@tmm1.net> Date: Mon Feb 9 21:03:46 2009 -0800 Remove old version of pipe.cpp in kb.cpp commit eb2a8823ec5d3f4f4ab3c34138bc943184932249 Author: Aman Gupta <aman@tmm1.net> Date: Mon Feb 9 12:35:48 2009 -0800 Oops, 1.9.0 compat typo commit b1c85cba79d1675e71291e27a45d3a3025e1abbe Author: Aman Gupta <aman@tmm1.net> Date: Sun Feb 8 15:15:51 2009 -0800 Catch errors in 'running under rubygems' check commit b49f3c5764c67e88f88373e1ccd4d86320bb4a45 Author: Aman Gupta <aman@tmm1.net> Date: Sun Feb 8 14:28:53 2009 -0800 Version bump, 0.12.5 for repo builds