eventmachine 0.12.4 → 0.12.6
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|