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
|