eventmachine 0.12.4 → 0.12.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +13 -0
- data/Rakefile +66 -3
- data/docs/ChangeLog +38 -10
- data/eventmachine.gemspec +32 -0
- data/ext/cmain.cpp +45 -3
- data/ext/cplusplus.cpp +21 -0
- data/ext/ed.cpp +34 -1
- data/ext/ed.h +12 -0
- data/ext/em.cpp +23 -3
- data/ext/em.h +6 -2
- data/ext/eventmachine.h +9 -1
- data/ext/eventmachine_cpp.h +1 -0
- data/ext/extconf.rb +8 -29
- data/ext/fastfilereader/extconf.rb +50 -134
- data/ext/fastfilereader/mapper.cpp +12 -0
- data/ext/fastfilereader/mapper.h +1 -1
- data/ext/kb.cpp +0 -286
- data/ext/pipe.cpp +30 -13
- data/ext/rubymain.cpp +127 -12
- data/ext/ssl.cpp +15 -0
- data/ext/ssl.h +4 -0
- data/java/.classpath +8 -0
- data/java/.project +17 -0
- data/lib/em/processes.rb +45 -0
- data/lib/eventmachine.rb +260 -102
- data/lib/eventmachine_version.rb +1 -1
- data/lib/pr_eventmachine.rb +1 -1
- data/lib/protocols/httpcli2.rb +10 -1
- data/lib/protocols/httpclient.rb +2 -2
- data/lib/protocols/memcache.rb +293 -0
- data/lib/protocols/smtpserver.rb +1 -1
- data/setup.rb +1585 -0
- data/tasks/tests.rake +1 -0
- data/tests/test_attach.rb +19 -2
- data/tests/test_basic.rb +2 -2
- data/tests/test_connection_count.rb +45 -0
- data/tests/test_error_handler.rb +35 -0
- data/tests/test_errors.rb +3 -3
- data/tests/test_exc.rb +2 -2
- data/tests/test_handler_check.rb +37 -0
- data/tests/test_httpclient2.rb +1 -1
- data/tests/test_kb.rb +2 -2
- data/tests/test_next_tick.rb +7 -0
- data/tests/test_processes.rb +39 -0
- data/tests/test_pure.rb +2 -2
- data/tests/test_send_file.rb +1 -1
- data/tests/test_ssl_args.rb +3 -3
- data/tests/test_ssl_methods.rb +50 -0
- data/tests/test_timers.rb +3 -1
- data/web/whatis +7 -0
- metadata +88 -84
data/tasks/tests.rake
CHANGED
data/tests/test_attach.rb
CHANGED
@@ -33,7 +33,7 @@ class TestAttach < Test::Unit::TestCase
|
|
33
33
|
end
|
34
34
|
|
35
35
|
class EchoClient < EM::Connection
|
36
|
-
def
|
36
|
+
def initialize
|
37
37
|
$sock.write("abc\n")
|
38
38
|
end
|
39
39
|
|
@@ -63,4 +63,21 @@ class TestAttach < Test::Unit::TestCase
|
|
63
63
|
assert_equal $sock.readline, "def\n"
|
64
64
|
end
|
65
65
|
|
66
|
-
|
66
|
+
|
67
|
+
module PipeWatch
|
68
|
+
def notify_readable
|
69
|
+
$read = $r.readline
|
70
|
+
EM.stop
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
def test_attach_pipe
|
75
|
+
EM.run{
|
76
|
+
$r, $w = IO.pipe
|
77
|
+
EM.attach $r, PipeWatch
|
78
|
+
$w.write("ghi\n")
|
79
|
+
}
|
80
|
+
|
81
|
+
assert_equal $read, "ghi\n"
|
82
|
+
end
|
83
|
+
end
|
data/tests/test_basic.rb
CHANGED
@@ -148,7 +148,7 @@ class TestBasic < Test::Unit::TestCase
|
|
148
148
|
end
|
149
149
|
|
150
150
|
def xxx_test_unbind_error
|
151
|
-
|
151
|
+
assert_raises( RuntimeError ) {
|
152
152
|
EM.run {
|
153
153
|
EM.start_server TestHost, TestPort
|
154
154
|
EM.connect TestHost, TestPort, UnbindError
|
@@ -184,7 +184,7 @@ class TestBasic < Test::Unit::TestCase
|
|
184
184
|
# This test causes issues, the machine becomes unreleasable after
|
185
185
|
# release_machine suffers an exception in event_callback.
|
186
186
|
def xxx_test_post_init_error
|
187
|
-
|
187
|
+
assert_raises( EventMachine::ConnectionNotBound ) {
|
188
188
|
EM.run {
|
189
189
|
EM::Timer.new(1) {EM.stop}
|
190
190
|
EM.start_server TestHost, TestPort
|
@@ -0,0 +1,45 @@
|
|
1
|
+
$:.unshift "../lib"
|
2
|
+
require 'eventmachine'
|
3
|
+
require 'test/unit'
|
4
|
+
|
5
|
+
class TestConnectionCount < Test::Unit::TestCase
|
6
|
+
def test_idle_connection_count
|
7
|
+
EM.run {
|
8
|
+
$count = EM.connection_count
|
9
|
+
EM.stop_event_loop
|
10
|
+
}
|
11
|
+
|
12
|
+
assert_equal(0, $count)
|
13
|
+
end
|
14
|
+
|
15
|
+
module Client
|
16
|
+
def connection_completed
|
17
|
+
EM.next_tick{
|
18
|
+
$client_connected = EM.connection_count
|
19
|
+
EM.stop
|
20
|
+
}
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
module Server
|
25
|
+
def post_init
|
26
|
+
$server_connected = EM.connection_count
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_with_some_connections
|
31
|
+
EM.run {
|
32
|
+
EM.start_server("127.0.0.1", 9999, Server)
|
33
|
+
$initial = EM.connection_count
|
34
|
+
EM.next_tick{
|
35
|
+
$server_started = EM.connection_count
|
36
|
+
EM.connect("127.0.0.1", 9999, Client)
|
37
|
+
}
|
38
|
+
}
|
39
|
+
|
40
|
+
assert_equal(0, $initial)
|
41
|
+
assert_equal(1, $server_started)
|
42
|
+
assert_equal(2, $server_connected)
|
43
|
+
assert_equal(3, $client_connected)
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
$:.unshift "../lib"
|
2
|
+
require 'eventmachine'
|
3
|
+
require 'test/unit'
|
4
|
+
|
5
|
+
class TestErrorHandler < Test::Unit::TestCase
|
6
|
+
def test_error_handler
|
7
|
+
error = nil
|
8
|
+
EM.error_handler{ |e|
|
9
|
+
error = e
|
10
|
+
EM.error_handler(nil)
|
11
|
+
EM.stop
|
12
|
+
}
|
13
|
+
|
14
|
+
assert_nothing_raised do
|
15
|
+
EM.run{
|
16
|
+
EM.add_timer(0){
|
17
|
+
raise 'test'
|
18
|
+
}
|
19
|
+
}
|
20
|
+
end
|
21
|
+
|
22
|
+
assert_equal error.class, RuntimeError
|
23
|
+
assert_equal error.message, 'test'
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_without_error_handler
|
27
|
+
assert_raise RuntimeError do
|
28
|
+
EM.run{
|
29
|
+
EM.add_timer(0){
|
30
|
+
raise 'test'
|
31
|
+
}
|
32
|
+
}
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/tests/test_errors.rb
CHANGED
@@ -42,14 +42,14 @@ class TestErrors < Test::Unit::TestCase
|
|
42
42
|
def setup
|
43
43
|
end
|
44
44
|
|
45
|
-
def
|
45
|
+
def obsolete_teardown
|
46
46
|
# Calling #set_runtime_error_hook with no block restores the
|
47
47
|
# default handling of runtime_errors.
|
48
48
|
#
|
49
49
|
EM.set_runtime_error_hook
|
50
50
|
end
|
51
51
|
|
52
|
-
def
|
52
|
+
def test_no_tests_stub
|
53
53
|
end
|
54
54
|
|
55
55
|
# EM has a default handler for RuntimeErrors that are emitted from
|
@@ -59,7 +59,7 @@ class TestErrors < Test::Unit::TestCase
|
|
59
59
|
# run.
|
60
60
|
#
|
61
61
|
def obsolete_test_unhandled_error
|
62
|
-
|
62
|
+
assert_raises( RuntimeError ) {
|
63
63
|
EM.run {
|
64
64
|
EM.add_timer(0) {raise "AAA"}
|
65
65
|
}
|
data/tests/test_exc.rb
CHANGED
@@ -38,7 +38,7 @@ class TestSomeExceptions < Test::Unit::TestCase
|
|
38
38
|
# because the machine wasn't cleaned up properly.
|
39
39
|
|
40
40
|
def test_a
|
41
|
-
|
41
|
+
assert_raises(RuntimeError) {
|
42
42
|
EventMachine.run {
|
43
43
|
raise "some exception"
|
44
44
|
}
|
@@ -46,7 +46,7 @@ class TestSomeExceptions < Test::Unit::TestCase
|
|
46
46
|
end
|
47
47
|
|
48
48
|
def test_b
|
49
|
-
|
49
|
+
assert_raises(RuntimeError) {
|
50
50
|
EventMachine.run {
|
51
51
|
raise "some exception"
|
52
52
|
}
|
@@ -0,0 +1,37 @@
|
|
1
|
+
$:.unshift "../lib"
|
2
|
+
require 'eventmachine'
|
3
|
+
require 'test/unit'
|
4
|
+
|
5
|
+
class TestHandlerCheck < Test::Unit::TestCase
|
6
|
+
|
7
|
+
class Foo < EM::Connection; end;
|
8
|
+
module TestModule; end;
|
9
|
+
|
10
|
+
def test_with_correct_class
|
11
|
+
assert_nothing_raised do
|
12
|
+
EM.run {
|
13
|
+
EM.connect("127.0.0.1", 80, Foo)
|
14
|
+
EM.stop_event_loop
|
15
|
+
}
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_with_incorrect_class
|
20
|
+
assert_raise(ArgumentError) do
|
21
|
+
EM.run {
|
22
|
+
EM.connect("127.0.0.1", 80, String)
|
23
|
+
EM.stop_event_loop
|
24
|
+
}
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_with_module
|
29
|
+
assert_nothing_raised do
|
30
|
+
EM.run {
|
31
|
+
EM.connect("127.0.0.1", 80, TestModule)
|
32
|
+
EM.stop_event_loop
|
33
|
+
}
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
data/tests/test_httpclient2.rb
CHANGED
@@ -60,7 +60,7 @@ class TestHttpClient2 < Test::Unit::TestCase
|
|
60
60
|
def test_bad_port
|
61
61
|
EM.run {
|
62
62
|
EM.start_server Localhost, Localport, TestServer
|
63
|
-
|
63
|
+
assert_raises( ArgumentError ) {
|
64
64
|
EM::P::HttpClient2.connect Localhost, "xxx"
|
65
65
|
}
|
66
66
|
EM.stop
|
data/tests/test_kb.rb
CHANGED
@@ -54,8 +54,8 @@ class TestKeyboardEvents < Test::Unit::TestCase
|
|
54
54
|
EM.run {
|
55
55
|
EM.open_keyboard KbHandler
|
56
56
|
EM::Timer.new(1) { EM.stop }
|
57
|
-
}
|
58
|
-
end
|
57
|
+
} if $stdout.tty? # don't run the test unless it stands a chance of validity.
|
58
|
+
end
|
59
59
|
|
60
60
|
end
|
61
61
|
|
data/tests/test_next_tick.rb
CHANGED
@@ -68,6 +68,13 @@ class TestNextTick < Test::Unit::TestCase
|
|
68
68
|
}
|
69
69
|
end
|
70
70
|
|
71
|
+
def test_pre_run_queue
|
72
|
+
x = false
|
73
|
+
EM.next_tick { EM.stop; x = true }
|
74
|
+
EM.run { EM.add_timer(0.2) { EM.stop } }
|
75
|
+
assert x
|
76
|
+
end
|
77
|
+
|
71
78
|
# We now support an additional parameter for EM#run.
|
72
79
|
# You can pass two procs to EM#run now. The first is executed as the normal
|
73
80
|
# run block. The second (if given) is scheduled for execution after the
|
data/tests/test_processes.rb
CHANGED
@@ -52,5 +52,44 @@ class TestProcesses < Test::Unit::TestCase
|
|
52
52
|
assert( ls.length > 0)
|
53
53
|
end
|
54
54
|
|
55
|
+
def setup
|
56
|
+
$out = nil
|
57
|
+
$status = nil
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_em_system
|
61
|
+
EM.run{
|
62
|
+
EM.system('ls'){ |out,status| $out, $status = out, status; EM.stop }
|
63
|
+
}
|
64
|
+
|
65
|
+
assert( $out.length > 0 )
|
66
|
+
assert_equal($status.exitstatus, 0)
|
67
|
+
assert_equal($status.class, Process::Status)
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_em_system_with_proc
|
71
|
+
EM.run{
|
72
|
+
EM.system('ls', proc{ |out,status| $out, $status = out, status; EM.stop })
|
73
|
+
}
|
74
|
+
|
75
|
+
assert( $out.length > 0 )
|
76
|
+
assert_equal($status.exitstatus, 0)
|
77
|
+
assert_equal($status.class, Process::Status)
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_em_system_with_two_procs
|
81
|
+
EM.run{
|
82
|
+
EM.system('sh', proc{ |process|
|
83
|
+
process.send_data("echo hello\n")
|
84
|
+
process.send_data("exit\n")
|
85
|
+
}, proc{ |out,status|
|
86
|
+
$out = out
|
87
|
+
$status = status
|
88
|
+
EM.stop
|
89
|
+
})
|
90
|
+
}
|
91
|
+
|
92
|
+
assert_equal($out, "hello\n")
|
93
|
+
end
|
55
94
|
end
|
56
95
|
|
data/tests/test_pure.rb
CHANGED
@@ -64,11 +64,11 @@ class TestPure < Test::Unit::TestCase
|
|
64
64
|
}
|
65
65
|
end
|
66
66
|
def test_exception_1
|
67
|
-
|
67
|
+
assert_raises( RuntimeError ) { run_exception }
|
68
68
|
end
|
69
69
|
def test_exception_2
|
70
70
|
ex_class = RUBY_PLATFORM == 'java' ? NativeException : RuntimeError
|
71
|
-
|
71
|
+
assert_raises( ex_class ) { run_exception }
|
72
72
|
end
|
73
73
|
|
74
74
|
|
data/tests/test_send_file.rb
CHANGED
@@ -92,7 +92,7 @@ class TestSendFile < Test::Unit::TestCase
|
|
92
92
|
data = ''
|
93
93
|
|
94
94
|
ex_class = RUBY_PLATFORM == 'java' ? NativeException : RuntimeError
|
95
|
-
|
95
|
+
assert_raises( ex_class ) {
|
96
96
|
EM.run {
|
97
97
|
EM.start_server TestHost, TestPort, TestModule
|
98
98
|
EM.add_timer(2) {EM.stop} # avoid hanging in case of error
|
data/tests/test_ssl_args.rb
CHANGED
@@ -41,13 +41,13 @@ class TestSslArgs < Test::Unit::TestCase
|
|
41
41
|
# associate_callback_target is a pain! (build!)
|
42
42
|
conn = EventMachine::Connection.new('foo')
|
43
43
|
|
44
|
-
|
44
|
+
assert_raises(EventMachine::FileNotFoundException) do
|
45
45
|
conn.start_tls(:private_key_file => priv_file)
|
46
46
|
end
|
47
|
-
|
47
|
+
assert_raises(EventMachine::FileNotFoundException) do
|
48
48
|
conn.start_tls(:cert_chain_file => cert_file)
|
49
49
|
end
|
50
|
-
|
50
|
+
assert_raises(EventMachine::FileNotFoundException) do
|
51
51
|
conn.start_tls(:private_key_file => priv_file, :cert_chain_file => cert_file)
|
52
52
|
end
|
53
53
|
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
$:.unshift "../lib"
|
2
|
+
require 'eventmachine'
|
3
|
+
require 'test/unit'
|
4
|
+
|
5
|
+
class TestSSLMethods < Test::Unit::TestCase
|
6
|
+
|
7
|
+
module ServerHandler
|
8
|
+
|
9
|
+
def post_init
|
10
|
+
start_tls
|
11
|
+
end
|
12
|
+
|
13
|
+
def ssl_handshake_completed
|
14
|
+
$server_called_back = true
|
15
|
+
$server_cert_value = get_peer_cert
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
module ClientHandler
|
21
|
+
|
22
|
+
def post_init
|
23
|
+
start_tls
|
24
|
+
end
|
25
|
+
|
26
|
+
def ssl_handshake_completed
|
27
|
+
$client_called_back = true
|
28
|
+
$client_cert_value = get_peer_cert
|
29
|
+
EM.stop_event_loop
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_ssl_methods
|
35
|
+
$server_called_back, $client_called_back = false, false
|
36
|
+
$server_cert_value, $client_cert_value = nil, nil
|
37
|
+
|
38
|
+
EM.run {
|
39
|
+
EM.start_server("127.0.0.1", 9999, ServerHandler)
|
40
|
+
EM.connect("127.0.0.1", 9999, ClientHandler)
|
41
|
+
}
|
42
|
+
|
43
|
+
assert($server_called_back)
|
44
|
+
assert($client_called_back)
|
45
|
+
|
46
|
+
assert($server_cert_value.is_a?(NilClass))
|
47
|
+
assert($client_cert_value.is_a?(String))
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
data/tests/test_timers.rb
CHANGED
@@ -122,7 +122,7 @@ class TestTimers < Test::Unit::TestCase
|
|
122
122
|
ten_thousand_timers.call
|
123
123
|
else
|
124
124
|
begin
|
125
|
-
|
125
|
+
assert_raises( RuntimeError ) {
|
126
126
|
ten_thousand_timers.call
|
127
127
|
}
|
128
128
|
rescue Object
|
@@ -134,7 +134,9 @@ class TestTimers < Test::Unit::TestCase
|
|
134
134
|
}
|
135
135
|
|
136
136
|
assert(!EM.reactor_running?, 'Reactor running when it should not be.')
|
137
|
+
assert( EM.get_max_timers != 10001 )
|
137
138
|
EM.set_max_timers( 10001 )
|
139
|
+
assert( EM.get_max_timers == 10001 )
|
138
140
|
|
139
141
|
EM.run {
|
140
142
|
ten_thousand_timers.call
|
data/web/whatis
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
EventMachine is a library for Ruby, C++, and Java programs. It provides event-driven I/O using the Reactor pattern.
|
2
|
+
|
3
|
+
EventMachine is designed to simultaneously meet two key needs:
|
4
|
+
- Extremely high scalability, performance and stability for the most demanding production environments; and
|
5
|
+
- An API that <i>eliminates</i> the complexities of high-performance threaded network programming, allowing engineers to concentrate on their application logic.
|
6
|
+
|
7
|
+
This unique combination makes EventMachine a premier choice for designers of critical networked applications, including web servers and proxies, email and IM production systems, authentication/authorization processors, and many more.
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eventmachine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.12.
|
4
|
+
version: 0.12.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Francis Cianfrocca
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-03-07 23:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -18,7 +18,8 @@ email: garbagecat10@gmail.com
|
|
18
18
|
executables: []
|
19
19
|
|
20
20
|
extensions:
|
21
|
-
-
|
21
|
+
- ext/extconf.rb
|
22
|
+
- ext/fastfilereader/extconf.rb
|
22
23
|
extra_rdoc_files:
|
23
24
|
- docs/ChangeLog
|
24
25
|
- docs/COPYING
|
@@ -36,67 +37,24 @@ extra_rdoc_files:
|
|
36
37
|
- docs/SPAWNED_PROCESSES
|
37
38
|
- docs/TODO
|
38
39
|
files:
|
40
|
+
- .gitignore
|
39
41
|
- Rakefile
|
40
|
-
-
|
41
|
-
-
|
42
|
-
-
|
43
|
-
-
|
44
|
-
-
|
45
|
-
-
|
46
|
-
-
|
47
|
-
-
|
48
|
-
-
|
49
|
-
-
|
50
|
-
-
|
51
|
-
-
|
52
|
-
-
|
53
|
-
-
|
54
|
-
-
|
55
|
-
-
|
56
|
-
- tests/test_pure.rb
|
57
|
-
- tests/test_running.rb
|
58
|
-
- tests/test_sasl.rb
|
59
|
-
- tests/test_send_file.rb
|
60
|
-
- tests/test_servers.rb
|
61
|
-
- tests/test_smtpclient.rb
|
62
|
-
- tests/test_smtpserver.rb
|
63
|
-
- tests/test_spawn.rb
|
64
|
-
- tests/test_ssl_args.rb
|
65
|
-
- tests/test_timers.rb
|
66
|
-
- tests/test_ud.rb
|
67
|
-
- tests/testem.rb
|
68
|
-
- lib/em
|
69
|
-
- lib/em/deferrable.rb
|
70
|
-
- lib/em/eventable.rb
|
71
|
-
- lib/em/future.rb
|
72
|
-
- lib/em/messages.rb
|
73
|
-
- lib/em/processes.rb
|
74
|
-
- lib/em/spawnable.rb
|
75
|
-
- lib/em/streamer.rb
|
76
|
-
- lib/eventmachine.rb
|
77
|
-
- lib/eventmachine_version.rb
|
78
|
-
- lib/evma
|
79
|
-
- lib/evma/callback.rb
|
80
|
-
- lib/evma/container.rb
|
81
|
-
- lib/evma/factory.rb
|
82
|
-
- lib/evma/protocol.rb
|
83
|
-
- lib/evma/reactor.rb
|
84
|
-
- lib/evma.rb
|
85
|
-
- lib/jeventmachine.rb
|
86
|
-
- lib/pr_eventmachine.rb
|
87
|
-
- lib/protocols
|
88
|
-
- lib/protocols/buftok.rb
|
89
|
-
- lib/protocols/header_and_content.rb
|
90
|
-
- lib/protocols/httpcli2.rb
|
91
|
-
- lib/protocols/httpclient.rb
|
92
|
-
- lib/protocols/line_and_text.rb
|
93
|
-
- lib/protocols/linetext2.rb
|
94
|
-
- lib/protocols/postgres.rb
|
95
|
-
- lib/protocols/saslauth.rb
|
96
|
-
- lib/protocols/smtpclient.rb
|
97
|
-
- lib/protocols/smtpserver.rb
|
98
|
-
- lib/protocols/stomp.rb
|
99
|
-
- lib/protocols/tcptest.rb
|
42
|
+
- docs/COPYING
|
43
|
+
- docs/ChangeLog
|
44
|
+
- docs/DEFERRABLES
|
45
|
+
- docs/EPOLL
|
46
|
+
- docs/GNU
|
47
|
+
- docs/INSTALL
|
48
|
+
- docs/KEYBOARD
|
49
|
+
- docs/LEGAL
|
50
|
+
- docs/LIGHTWEIGHT_CONCURRENCY
|
51
|
+
- docs/PURE_RUBY
|
52
|
+
- docs/README
|
53
|
+
- docs/RELEASE_NOTES
|
54
|
+
- docs/SMTP
|
55
|
+
- docs/SPAWNED_PROCESSES
|
56
|
+
- docs/TODO
|
57
|
+
- eventmachine.gemspec
|
100
58
|
- ext/binder.cpp
|
101
59
|
- ext/binder.h
|
102
60
|
- ext/cmain.cpp
|
@@ -112,7 +70,6 @@ files:
|
|
112
70
|
- ext/eventmachine.h
|
113
71
|
- ext/eventmachine_cpp.h
|
114
72
|
- ext/extconf.rb
|
115
|
-
- ext/fastfilereader
|
116
73
|
- ext/fastfilereader/extconf.rb
|
117
74
|
- ext/fastfilereader/mapper.cpp
|
118
75
|
- ext/fastfilereader/mapper.h
|
@@ -129,9 +86,8 @@ files:
|
|
129
86
|
- ext/sigs.h
|
130
87
|
- ext/ssl.cpp
|
131
88
|
- ext/ssl.h
|
132
|
-
- java
|
133
|
-
- java
|
134
|
-
- java/src/com/rubyeventmachine
|
89
|
+
- java/.classpath
|
90
|
+
- java/.project
|
135
91
|
- java/src/com/rubyeventmachine/Application.java
|
136
92
|
- java/src/com/rubyeventmachine/Connection.java
|
137
93
|
- java/src/com/rubyeventmachine/ConnectionFactory.java
|
@@ -142,32 +98,80 @@ files:
|
|
142
98
|
- java/src/com/rubyeventmachine/EventableDatagramChannel.java
|
143
99
|
- java/src/com/rubyeventmachine/EventableSocketChannel.java
|
144
100
|
- java/src/com/rubyeventmachine/PeriodicTimer.java
|
145
|
-
- java/src/com/rubyeventmachine/
|
101
|
+
- java/src/com/rubyeventmachine/Timer.java
|
146
102
|
- java/src/com/rubyeventmachine/tests/ApplicationTest.java
|
147
103
|
- java/src/com/rubyeventmachine/tests/ConnectTest.java
|
148
104
|
- java/src/com/rubyeventmachine/tests/EMTest.java
|
149
105
|
- java/src/com/rubyeventmachine/tests/TestDatagrams.java
|
150
106
|
- java/src/com/rubyeventmachine/tests/TestServers.java
|
151
107
|
- java/src/com/rubyeventmachine/tests/TestTimers.java
|
152
|
-
-
|
108
|
+
- lib/em/deferrable.rb
|
109
|
+
- lib/em/eventable.rb
|
110
|
+
- lib/em/future.rb
|
111
|
+
- lib/em/messages.rb
|
112
|
+
- lib/em/processes.rb
|
113
|
+
- lib/em/spawnable.rb
|
114
|
+
- lib/em/streamer.rb
|
115
|
+
- lib/eventmachine.rb
|
116
|
+
- lib/eventmachine_version.rb
|
117
|
+
- lib/evma.rb
|
118
|
+
- lib/evma/callback.rb
|
119
|
+
- lib/evma/container.rb
|
120
|
+
- lib/evma/factory.rb
|
121
|
+
- lib/evma/protocol.rb
|
122
|
+
- lib/evma/reactor.rb
|
123
|
+
- lib/jeventmachine.rb
|
124
|
+
- lib/pr_eventmachine.rb
|
125
|
+
- lib/protocols/buftok.rb
|
126
|
+
- lib/protocols/header_and_content.rb
|
127
|
+
- lib/protocols/httpcli2.rb
|
128
|
+
- lib/protocols/httpclient.rb
|
129
|
+
- lib/protocols/line_and_text.rb
|
130
|
+
- lib/protocols/linetext2.rb
|
131
|
+
- lib/protocols/memcache.rb
|
132
|
+
- lib/protocols/postgres.rb
|
133
|
+
- lib/protocols/saslauth.rb
|
134
|
+
- lib/protocols/smtpclient.rb
|
135
|
+
- lib/protocols/smtpserver.rb
|
136
|
+
- lib/protocols/stomp.rb
|
137
|
+
- lib/protocols/tcptest.rb
|
138
|
+
- setup.rb
|
153
139
|
- tasks/cpp.rake
|
154
140
|
- tasks/project.rake
|
155
141
|
- tasks/tests.rake
|
156
|
-
-
|
157
|
-
-
|
158
|
-
-
|
159
|
-
-
|
160
|
-
-
|
161
|
-
-
|
162
|
-
-
|
163
|
-
-
|
164
|
-
-
|
165
|
-
-
|
166
|
-
-
|
167
|
-
-
|
168
|
-
-
|
169
|
-
-
|
170
|
-
-
|
142
|
+
- tests/test_attach.rb
|
143
|
+
- tests/test_basic.rb
|
144
|
+
- tests/test_connection_count.rb
|
145
|
+
- tests/test_defer.rb
|
146
|
+
- tests/test_epoll.rb
|
147
|
+
- tests/test_error_handler.rb
|
148
|
+
- tests/test_errors.rb
|
149
|
+
- tests/test_eventables.rb
|
150
|
+
- tests/test_exc.rb
|
151
|
+
- tests/test_futures.rb
|
152
|
+
- tests/test_handler_check.rb
|
153
|
+
- tests/test_hc.rb
|
154
|
+
- tests/test_httpclient.rb
|
155
|
+
- tests/test_httpclient2.rb
|
156
|
+
- tests/test_kb.rb
|
157
|
+
- tests/test_ltp.rb
|
158
|
+
- tests/test_ltp2.rb
|
159
|
+
- tests/test_next_tick.rb
|
160
|
+
- tests/test_processes.rb
|
161
|
+
- tests/test_pure.rb
|
162
|
+
- tests/test_running.rb
|
163
|
+
- tests/test_sasl.rb
|
164
|
+
- tests/test_send_file.rb
|
165
|
+
- tests/test_servers.rb
|
166
|
+
- tests/test_smtpclient.rb
|
167
|
+
- tests/test_smtpserver.rb
|
168
|
+
- tests/test_spawn.rb
|
169
|
+
- tests/test_ssl_args.rb
|
170
|
+
- tests/test_ssl_methods.rb
|
171
|
+
- tests/test_timers.rb
|
172
|
+
- tests/test_ud.rb
|
173
|
+
- tests/testem.rb
|
174
|
+
- web/whatis
|
171
175
|
has_rdoc: true
|
172
176
|
homepage: http://rubyeventmachine.com
|
173
177
|
post_install_message:
|