eventmachine 0.12.2 → 0.12.4

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.
Files changed (125) hide show
  1. data/Rakefile +191 -0
  2. data/{COPYING → docs/COPYING} +0 -0
  3. data/docs/ChangeLog +183 -0
  4. data/{DEFERRABLES → docs/DEFERRABLES} +1 -1
  5. data/{EPOLL → docs/EPOLL} +0 -0
  6. data/{GNU → docs/GNU} +0 -0
  7. data/docs/INSTALL +15 -0
  8. data/{KEYBOARD → docs/KEYBOARD} +0 -0
  9. data/{LEGAL → docs/LEGAL} +0 -0
  10. data/{LIGHTWEIGHT_CONCURRENCY → docs/LIGHTWEIGHT_CONCURRENCY} +1 -1
  11. data/{PURE_RUBY → docs/PURE_RUBY} +1 -1
  12. data/{README → docs/README} +1 -1
  13. data/{RELEASE_NOTES → docs/RELEASE_NOTES} +1 -1
  14. data/{SMTP → docs/SMTP} +1 -1
  15. data/{SPAWNED_PROCESSES → docs/SPAWNED_PROCESSES} +1 -1
  16. data/{TODO → docs/TODO} +1 -1
  17. data/ext/binder.cpp +1 -1
  18. data/ext/binder.h +1 -1
  19. data/ext/cmain.cpp +65 -74
  20. data/ext/cplusplus.cpp +1 -1
  21. data/ext/ed.cpp +41 -25
  22. data/ext/ed.h +10 -3
  23. data/ext/em.cpp +39 -12
  24. data/ext/em.h +13 -1
  25. data/ext/emwin.cpp +1 -1
  26. data/ext/emwin.h +1 -1
  27. data/ext/epoll.cpp +1 -1
  28. data/ext/epoll.h +1 -1
  29. data/ext/eventmachine.h +1 -1
  30. data/ext/eventmachine_cpp.h +1 -1
  31. data/ext/extconf.rb +86 -139
  32. data/ext/fastfilereader/extconf.rb +161 -0
  33. data/ext/fastfilereader/mapper.cpp +202 -0
  34. data/ext/fastfilereader/mapper.h +59 -0
  35. data/ext/fastfilereader/rubymain.cpp +127 -0
  36. data/ext/files.cpp +1 -1
  37. data/ext/files.h +1 -1
  38. data/ext/kb.cpp +1 -1
  39. data/ext/page.cpp +1 -1
  40. data/ext/page.h +1 -1
  41. data/ext/pipe.cpp +14 -7
  42. data/ext/project.h +1 -1
  43. data/ext/rubymain.cpp +56 -2
  44. data/ext/sigs.cpp +1 -1
  45. data/ext/sigs.h +1 -1
  46. data/ext/ssl.cpp +1 -1
  47. data/ext/ssl.h +1 -1
  48. data/java/src/com/rubyeventmachine/Application.java +196 -0
  49. data/java/src/com/rubyeventmachine/Connection.java +74 -0
  50. data/java/src/com/rubyeventmachine/ConnectionFactory.java +37 -0
  51. data/java/src/com/rubyeventmachine/DefaultConnectionFactory.java +46 -0
  52. data/java/src/com/rubyeventmachine/EmReactor.java +408 -0
  53. data/java/src/com/rubyeventmachine/EmReactorException.java +40 -0
  54. data/java/src/com/rubyeventmachine/EventableChannel.java +57 -0
  55. data/java/src/com/rubyeventmachine/EventableDatagramChannel.java +171 -0
  56. data/java/src/com/rubyeventmachine/EventableSocketChannel.java +244 -0
  57. data/java/src/com/rubyeventmachine/PeriodicTimer.java +38 -0
  58. data/java/src/com/rubyeventmachine/Timer.java +54 -0
  59. data/java/src/com/rubyeventmachine/tests/ApplicationTest.java +108 -0
  60. data/java/src/com/rubyeventmachine/tests/ConnectTest.java +124 -0
  61. data/java/src/com/rubyeventmachine/tests/EMTest.java +80 -0
  62. data/java/src/com/rubyeventmachine/tests/TestDatagrams.java +53 -0
  63. data/java/src/com/rubyeventmachine/tests/TestServers.java +74 -0
  64. data/java/src/com/rubyeventmachine/tests/TestTimers.java +89 -0
  65. data/lib/em/deferrable.rb +1 -1
  66. data/lib/em/eventable.rb +1 -1
  67. data/lib/em/future.rb +1 -1
  68. data/lib/em/messages.rb +1 -1
  69. data/lib/em/processes.rb +1 -1
  70. data/lib/em/spawnable.rb +1 -1
  71. data/lib/em/streamer.rb +1 -1
  72. data/lib/eventmachine.rb +138 -116
  73. data/lib/eventmachine_version.rb +2 -2
  74. data/lib/evma.rb +1 -1
  75. data/lib/evma/callback.rb +1 -1
  76. data/lib/evma/container.rb +1 -1
  77. data/lib/evma/factory.rb +1 -1
  78. data/lib/evma/protocol.rb +1 -1
  79. data/lib/evma/reactor.rb +1 -1
  80. data/lib/jeventmachine.rb +7 -2
  81. data/lib/pr_eventmachine.rb +2 -2
  82. data/lib/protocols/buftok.rb +1 -1
  83. data/lib/protocols/header_and_content.rb +1 -1
  84. data/lib/protocols/httpcli2.rb +16 -6
  85. data/lib/protocols/httpclient.rb +7 -1
  86. data/lib/protocols/line_and_text.rb +6 -2
  87. data/lib/protocols/linetext2.rb +12 -14
  88. data/lib/protocols/postgres.rb +1 -1
  89. data/lib/protocols/saslauth.rb +1 -1
  90. data/lib/protocols/smtpclient.rb +1 -1
  91. data/lib/protocols/smtpserver.rb +36 -23
  92. data/lib/protocols/stomp.rb +24 -1
  93. data/lib/protocols/tcptest.rb +1 -1
  94. data/tasks/cpp.rake +77 -0
  95. data/tasks/project.rake +78 -0
  96. data/tasks/tests.rake +192 -0
  97. data/tests/test_attach.rb +1 -1
  98. data/tests/test_basic.rb +65 -12
  99. data/tests/test_defer.rb +13 -29
  100. data/tests/test_epoll.rb +16 -21
  101. data/tests/test_errors.rb +1 -1
  102. data/tests/test_eventables.rb +4 -5
  103. data/tests/test_exc.rb +1 -1
  104. data/tests/test_futures.rb +1 -1
  105. data/tests/test_hc.rb +185 -236
  106. data/tests/test_httpclient.rb +1 -1
  107. data/tests/test_httpclient2.rb +28 -6
  108. data/tests/test_kb.rb +2 -2
  109. data/tests/test_ltp.rb +139 -141
  110. data/tests/test_ltp2.rb +1 -1
  111. data/tests/test_next_tick.rb +1 -1
  112. data/tests/test_processes.rb +1 -1
  113. data/tests/test_pure.rb +3 -2
  114. data/tests/test_running.rb +1 -1
  115. data/tests/test_sasl.rb +1 -1
  116. data/tests/test_send_file.rb +56 -51
  117. data/tests/test_servers.rb +26 -36
  118. data/tests/test_smtpclient.rb +46 -44
  119. data/tests/test_smtpserver.rb +1 -1
  120. data/tests/test_spawn.rb +1 -1
  121. data/tests/test_ssl_args.rb +68 -0
  122. data/tests/test_timers.rb +15 -9
  123. data/tests/test_ud.rb +1 -1
  124. data/tests/testem.rb +30 -4
  125. metadata +69 -34
@@ -0,0 +1,191 @@
1
+ #!/usr/bin/env rake
2
+ #--
3
+ # Ruby/EventMachine
4
+ # http://rubyeventmachine.com
5
+ # Copyright (C) 2006-07 by Francis Cianfrocca
6
+ #
7
+ # This program is copyrighted free software. You may use it under
8
+ # the terms of either the GPL or Ruby's License. See the file
9
+ # COPYING in the EventMachine distribution for full licensing
10
+ # information.
11
+ #
12
+ # $Id$
13
+ #++
14
+
15
+ ### OLD RAKE: ###
16
+ # # The tasks and external gemspecs we used to generate binary gems are now
17
+ # # obsolete. Use Patrick Hurley's gembuilder to build binary gems for any
18
+ # # desired platform.
19
+ # # To build a binary gem on Win32, ensure that the include and lib paths
20
+ # # both contain the proper references to OPENSSL. Use the static version
21
+ # # of the libraries, not the dynamic, otherwise we expose the user to a
22
+ # # runtime dependency.
23
+ #
24
+ # # To build a binary gem for win32, first build rubyeventmachine.so
25
+ # # using VC6 outside of the build tree (the normal way: ruby extconf.rb,
26
+ # # and then nmake). Then copy rubyeventmachine.so into the lib directory,
27
+ # # and run rake gemwin32.
28
+ #
29
+
30
+ require 'rubygems' unless defined?(Gem)
31
+ require 'rake' unless defined?(Rake)
32
+ require 'rake/gempackagetask'
33
+
34
+ Package = true # Build zips and tarballs?
35
+ Dir.glob('tasks/*.rake').each { |r| Rake.application.add_import r }
36
+
37
+ # e.g. rake EVENTMACHINE_LIBRARY=java for forcing java build tasks as defaults!
38
+ $eventmachine_library = :java if RUBY_PLATFORM =~ /java/ || ENV['EVENTMACHINE_LIBRARY'] == 'java'
39
+ $eventmachine_library = :pure_ruby if ENV['EVENTMACHINE_LIBRARY'] == 'pure_ruby'
40
+
41
+ MAKE = ENV['MAKE'] || if RUBY_PLATFORM =~ /mswin/ # mingw uses make.
42
+ 'nmake'
43
+ else
44
+ 'make'
45
+ end
46
+
47
+ # If running under rubygems...
48
+ __DIR__ ||= File.expand_path(File.dirname(__FILE__))
49
+ if Gem.path.map{|path| Dir.chdir(path){ Dir.pwd } rescue path }.any? {|path| %r(^#{Regexp.escape path}) =~ __DIR__}
50
+ task :default => :gem_build
51
+ else
52
+ desc "Build gemspec, then build eventmachine, then run tests."
53
+ task :default => [:build, :test]
54
+ end
55
+
56
+ desc ":default build when running under rubygems."
57
+ task :gem_build => :build
58
+
59
+ desc "Build extension (or EVENTMACHINE_LIBRARY) and place in lib"
60
+ build_task = 'ext:build'
61
+ build_task = 'java:build' if $eventmachine_library == :java
62
+ build_task = :dummy_build if $eventmachine_library == :pure_ruby
63
+ task :build => build_task do |t|
64
+ Dir.glob('{ext,java/src,ext/fastfilereader}/*.{so,bundle,dll,jar}').each do |f|
65
+ mv f, "lib"
66
+ end
67
+ end
68
+
69
+ task :dummy_build
70
+
71
+ # Basic clean definition, this is enhanced by imports aswell.
72
+ task :clean do
73
+ chdir 'ext' do
74
+ sh "#{MAKE} clean" if test ?e, 'Makefile'
75
+ end
76
+ chdir 'ext/fastfilereader' do
77
+ sh "#{MAKE} clean" if test ?e, 'Makefile'
78
+ end
79
+ Dir.glob('**/Makefile').each { |file| rm file }
80
+ Dir.glob('**/*.{o,so,bundle,class,jar,dll,log}').each { |file| rm file }
81
+ Dir.glob('ext/**/conftest.dSYM').each{ |file| rm_rf file }
82
+ end
83
+
84
+ Spec = Gem::Specification.new do |s|
85
+ s.name = "eventmachine"
86
+ s.summary = "Ruby/EventMachine library"
87
+ s.platform = Gem::Platform::RUBY
88
+
89
+ s.has_rdoc = true
90
+ s.rdoc_options = %w(--title EventMachine --main docs/README --line-numbers)
91
+ s.extra_rdoc_files = Dir['docs/*']
92
+
93
+ s.files = %w(Rakefile) + Dir["{bin,tests,lib,ext,java,tasks}/**/*"]
94
+
95
+ s.require_path = 'lib'
96
+
97
+ # TODO / XXX - should we enable this? rubygems fails the install if anything
98
+ # is broken. What we could do is CI submission, though, and always terminate
99
+ # with a positive code...
100
+ # s.test_file = "tests/testem.rb"
101
+ s.extensions = "Rakefile"
102
+
103
+ s.author = "Francis Cianfrocca"
104
+ s.email = "garbagecat10@gmail.com"
105
+ s.rubyforge_project = 'eventmachine'
106
+ s.homepage = "http://rubyeventmachine.com"
107
+
108
+ # Pulled in from readme, as code to pull from readme was not working!
109
+ # Might be worth removing as no one seems to use gem info anyway.
110
+ s.description = <<-EOD
111
+ EventMachine implements a fast, single-threaded engine for arbitrary network
112
+ communications. It's extremely easy to use in Ruby. EventMachine wraps all
113
+ interactions with IP sockets, allowing programs to concentrate on the
114
+ implementation of network protocols. It can be used to create both network
115
+ servers and clients. To create a server or client, a Ruby program only needs
116
+ to specify the IP address and port, and provide a Module that implements the
117
+ communications protocol. Implementations of several standard network protocols
118
+ are provided with the package, primarily to serve as examples. The real goal
119
+ of EventMachine is to enable programs to easily interface with other programs
120
+ using TCP/IP, especially if custom protocols are required.
121
+ EOD
122
+
123
+ require 'lib/eventmachine_version'
124
+ s.version = EventMachine::VERSION
125
+ end
126
+
127
+ namespace :ext do
128
+ ext_sources = FileList['ext/*.{h,cpp,rb,c}']
129
+ ffr_sources = FileList['ext/fastfilereader/*.{h,cpp,rb}']
130
+
131
+ desc "Build C++ extension"
132
+ task :build => [:make]
133
+
134
+ desc "make extensions"
135
+ task :make => ext_sources + ['ext/Makefile'] do
136
+ chdir 'ext' do
137
+ sh MAKE
138
+ end
139
+ end
140
+ task :make => ffr_sources + ['ext/fastfilereader/Makefile'] do
141
+ chdir 'ext/fastfilereader' do
142
+ sh MAKE
143
+ end
144
+ end
145
+
146
+ desc 'Compile the makefile'
147
+ file 'ext/Makefile' => ext_sources do
148
+ chdir 'ext' do
149
+ ruby 'extconf.rb'
150
+ end
151
+ end
152
+
153
+ desc 'Compile fastfilereader makefile'
154
+ file 'ext/fastfilereader/Makefile' => ffr_sources do
155
+ chdir 'ext/fastfilereader' do
156
+ ruby 'extconf.rb'
157
+ end
158
+ end
159
+ end
160
+
161
+ namespace :java do
162
+ # This task creates the JRuby JAR file and leaves it in the lib directory.
163
+ # This step is required before executing the jgem task.
164
+ desc "Build java extension"
165
+ task :build => [:jar] do |t|
166
+ chdir('java/src') do
167
+ mv 'em_reactor.jar', '../../lib/em_reactor.jar'
168
+ end
169
+ end
170
+
171
+ desc "compile .java to .class"
172
+ task :compile do
173
+ chdir('java/src') do
174
+ sh 'javac com/rubyeventmachine/*.java'
175
+ end
176
+ end
177
+
178
+ desc "compile .classes to .jar"
179
+ task :jar => [:compile] do
180
+ chdir('java/src') do
181
+ sh "jar -cf em_reactor.jar com/rubyeventmachine/*.class"
182
+ end
183
+ end
184
+ end
185
+
186
+ task :gemspec => :clobber do
187
+ open("eventmachine.gemspec", 'w') { |f| f.write Spec.to_ruby }
188
+ end
189
+
190
+ task :clobber => :clean
191
+ task :test => :build
File without changes
@@ -0,0 +1,183 @@
1
+ # $Id$
2
+ #
3
+ #
4
+
5
+ #-------------------------------------------------------------
6
+ 01Oct06: Replaced EventMachine#open_datagram_server with a version that can take
7
+ a Class or a Module, instead of just a Module. Thanks to Tobias Gustafsson for
8
+ pointing out the missing case.
9
+
10
+ 04Oct06: Supported subsecond timer resolutions, per request by Jason Roelofs.
11
+ 05Oct06: Added EventMachine#set_quantum, which sets the timer resolution.
12
+ 15Nov06: Added Connection#set_comm_inactivity_timeout.
13
+ 15Nov06: Checked in a Line-and-Text Protocol Handler.
14
+ 18Nov06: Checked in a Header-and-Body Protocol Handler.
15
+ 22Nov06: Changed EventMachine#reconnect: no longer excepts when called on an
16
+ already-connected handler.
17
+ 28Nov06: Supported a binary-unix gem.
18
+ 19Dec06: Added EventMachine#set_effective_user.
19
+ 05Jan07: Upped max outstanding timers to 1000.
20
+ 15May07: Applied Solaris patches from Brett Eisenberg
21
+ 22May07: Cleaned up the license text in all the source files.
22
+ 22May07: Released version 0.7.2
23
+
24
+ 23May07: Per suggestion from Bill Kelly, fixed a bug with the initialization
25
+ of the network libraries under Windows. The goal is to enable EM to
26
+ be used without Ruby.
27
+ 28May07: Applied patch from Bill Kelly, refactors the declarations of
28
+ event names to make EM easier to use from C programs without Ruby.
29
+ 31May07: Added a preliminary implementation of EventMachine#popen.
30
+ 01Jun07: Added EM, a "pseudo-alias" for EventMachine.
31
+ 01Jun07: Added EM#next_tick.
32
+ 01Jun07: Added EM::Connection#get_outbound_data_size
33
+ 05Jun07: Removed the code which loads a pure-Ruby EM library in case the
34
+ compiled extension is unavailable. Suggested by Moshe Litvin.
35
+ 06Jun07: Preliminary epoll implementation.
36
+ 12Jun07: Added an evented popen implementation that, like Ruby's, is
37
+ full-duplex and makes the subprocess PID available to the caller.
38
+ 06Jul07: Performance-tweaked the callback dispatcher in eventmachine.rb.
39
+ 10Jul07: Released version 0.8.0.
40
+ 12Jul07: Applied patches from Tim Pease to fix Solaris build problems.
41
+ 15Jul07: Created a new provisional source branch, experiments/jruby-1.
42
+ This is a preliminary implementation of the EM reactor in Java,
43
+ suitable for use with JRuby.
44
+ 17Jul07: Added EventMachine#stop_server, per request from Kirk Haines,
45
+ and associated unit tests.
46
+ 22Jul07: Added EventMachine#stream_file_data. This is a very fast and scalable
47
+ way of sending data from static files over network connections. It
48
+ has separate implementations for small files and large file, and
49
+ has tunings to minimize memory consumption.
50
+ 26Jul07: Added some patches by Kirk Haines to improve the behavior of
51
+ EM::Connection#send_file_data_to_connection.
52
+ 26Jul07: Added a C++ module for directly integrating EM into C++ programs
53
+ with no Ruby dependencies. Needs example code.
54
+ 29Jul07: Added EventMachine::Protocols::LineText2.
55
+ 29Jul07: Added EventMachine::Protocols::Stomp.
56
+ 30Jul07: Added sys/stat.h to project.h to fix compilation bug on Darwin.
57
+ 13Aug07: Added EventMachine#reactor_running?
58
+ 15Aug07: Added parameters for EventMachine::Connection:start_tls that can be
59
+ used to specify client-side private keys and certificates.
60
+ 17Aug07: Added EventMachine#run_block, a sugaring for a common use case.
61
+ 24Aug07: Added a preliminary keyboard handler. Needs docs and testing on
62
+ windows.
63
+ 26Aug07: Created EventMachine::Spawnable, an implementation of Erlang-like
64
+ processes.
65
+ 27Aug07: Silenced some -w warnings, requested by James Edward Gray II.
66
+ 30Aug07: Added cookies to EM::HttpClient#request.
67
+ 04Sep07: Added an initial implementation of an evented SMTP client.
68
+ 04Sep07: Added an initial implementation of an evented SMTP server.
69
+ 10Sep07: Changed EM#spawn to run spawned blocks in the context of the
70
+ SpawnedProcess object, not of whatever was the active object at the
71
+ time of the spawn.
72
+ 14Sep07: Heartbeats weren't working with EPOLL. Noticed by Brian Candler.
73
+ 15Sep07: Added some features, tests and documents to Deferrable.
74
+ 16Sep07: Added [:content] parameter to EM::Protocols::SmtpClient#send.
75
+ 16Sep07: Bumped version to 0.9.0 in anticipation of a release.
76
+ 18Sep07: Released version 0.9.0.
77
+ 19Sep07: Added #receive_reset to EM::Protocols::SmtpServer.
78
+ 19Sep07: User overrides of EM::Protocols::SmtpServer#receive_recipient can now
79
+ return a Deferrable. Also fixed bug: SmtpClient now raises a protocol
80
+ error if none of its RCPT TO: commands are accepted by the server.
81
+ 26Sep07: Fixed missing keyboard support for Windows.
82
+ 03Oct07: Added a default handler for RuntimeErrors emitted from user-written
83
+ code. Suggested by Brian Candler.
84
+ 19Oct07: Set the SO_BROADCAST option automatically on all UDP sockets.
85
+ 10Nov07: Forced integer conversion of send_datagram's port parameter.
86
+ Suggested by Matthieu Riou.
87
+ 12Nov07: Added saslauth.rb, a protocol module to replace the Cyrus SASL
88
+ daemons saslauthd and pwcheck.
89
+ 15Nov07: Fixed bug reported by Mark Zvillius. We were failing to dispatch
90
+ zero-length datagrams under certain conditions.
91
+ 19Nov07: Added EventMachine#set_max_timers. Requested by Matthieu Riou and
92
+ others.
93
+ 19Nov07: Fixed bug with EM::Connection#start_tls. Was not working with server
94
+ connections. Reported by Michael S. Fischer.
95
+ 26Nov07: Supported a hack for EventMachine#popen so it can return an exit
96
+ status from subprocesses. Requested by Michael S. Fischer.
97
+ 30Nov07: Changed Pipe descriptors so that the child-side of the socketpair is
98
+ NOT set nonblocking. Suggested by Duane Johnson.
99
+ 05Dec07: Re-enabled the pure-Ruby implementation.
100
+ 06Dec07: Released Version 0.10.0.
101
+ 13Dec07: Added EM::DeferrableChildProcess
102
+ 24Dec07: Added a SASL client for simple password authentication.
103
+ 27Dec07: Removed the hookable error handler. No one was using it and it significantly
104
+ degraded performance.
105
+ 30Dec07: Implemented Kqueue support for OSX and BSD.
106
+ 04Jan08: Fixed bug in epoll ("Bad file descriptor"), patch supplied by Chris
107
+ Heath.
108
+ 04Jan08: Fixed bug reported by Michael S. Fischer. We were terminating
109
+ SSL connections that sent data before the handshake was complete.
110
+ 08Jan08: Added an OpenBSD branch for extconf.rb, contributed by Guillaume
111
+ Sellier.
112
+ 19Jan08: Added EM::Connection::get_sockname per request by Michael Fischer.
113
+ 19Jan08: Supported IPv6 addresses.
114
+ 30Apr08: Set the NODELAY option on sockets that we connect to other servers.
115
+ Omission noted by Roger Pack.
116
+ 14May08: Generated a 0.12 release.
117
+ 15May08: Supported EM#get_sockname for acceptors (TCP server sockets).
118
+ Requested by Roger Pack.
119
+ 15May08; Accepted a patch from Dan Aquino that allows the interval of a
120
+ PeriodicTimer to be changed on the fly.
121
+ 15Jun08: Supported nested calls to EM#run. Many people contributed ideas to
122
+ this, notably raggi and tmm1.
123
+ 20Jul08: Accepted patch from tmm1 for EM#fork_reactor.
124
+ 28Jul08: Added a Postgres3 implementation, written by FCianfrocca.
125
+ 14Aug08: Added a patch by Mike Murphy to support basic auth in the http
126
+ client.
127
+ 28Aug08: Added a patch by tmm1 to fix a longstanding problem with Java
128
+ data-sends.
129
+ 13Sep08: Added LineText2#set_binary_mode, a back-compatibility alias.
130
+ 13Sep08: Modified the load order of protocol libraries in eventmachine.rb
131
+ to permit a modification of HeaderAndContentProtocol.
132
+ 13Sep08: Modified HeaderAndContent to use LineText2, which is less buggy
133
+ than LineAndTextProtocol. This change may be reversed if we can fix
134
+ the bugs in buftok.
135
+ 13Sep08: Improved the password handling in the Postgres protocol handler.
136
+ 15Sep08: Added attach/detach, contributed by Aman Gupta (tmm1) and Riham Aldakkak,
137
+ to support working with file descriptors not created in the reactor.
138
+ 16Sep08: Added an optional version string to the HTTP client. This is a hack
139
+ that allows a client to specify a version 1.0 request, which
140
+ keeps the server from sending a chunked response. The right way to
141
+ solve this, of course, is to support chunked responses.
142
+ 23Sep08: ChangeLog Summary for Merge of branches/raggi
143
+ Most notable work and patches by Aman Gupta, Roger Pack, and James Tucker.
144
+ Patches / Tickets also submitted by: Jeremy Evans, aanand, darix, mmmurf,
145
+ danielaquino, macournoyer.
146
+ - Moved docs into docs/ dir
147
+ - Major refactor of rakefile, added generic rakefile helpers in tasks
148
+ - Added example CPP build rakefile in tasks/cpp.rake
149
+ - Moved rake tests out to tasks/tests.rake
150
+ - Added svn ignores where appropriate
151
+ - Fixed jruby build on older java platforms
152
+ - Gem now builds from Rakefile rather than directly via extconf
153
+ - Gem unified for jruby, C++ and pure ruby.
154
+ - Correction for pure C++ build, removing ruby dependency
155
+ - Fix for CYGWIN builds on ipv6
156
+ - Major refactor for extconf.rb
157
+ - Working mingw builds
158
+ - extconf optionally uses pkg_config over manual configuration
159
+ - extconf builds for 1.9 on any system that has 1.9
160
+ - extconf no longer links pthread explicitly
161
+ - looks for kqueue on all *nix systems
162
+ - better error output on std::runtime_error, now says where it came from
163
+ - Fixed some tests on jruby
164
+ - Added test for general send_data flaw, required for a bugfix in jruby build
165
+ - Added timeout to epoll tests
166
+ - Added fixes for java reactor ruby api
167
+ - Small addition of some docs in httpclient.rb and httpcli2.rb
168
+ - Some refactor and fixes in smtpserver.rb
169
+ - Added parenthesis where possible to avoid excess ruby warnings
170
+ - Refactor of $eventmachine_library logic for accuracy and maintenance, jruby
171
+ - EM::start_server now supports unix sockets
172
+ - EM::connect now supports unix sockets
173
+ - EM::defer @threadqueue now handled more gracefully
174
+ - Added better messages on exceptions raised
175
+ - Fix edge case in timer fires
176
+ - Explicitly require buftok.rb
177
+ - Add protocols to autoload, rather than require them all immediately
178
+ - Fix a bug in pr_eventmachine for outbound_q
179
+ - Refactors to take some of the use of defer out of tests.
180
+ - Fixes in EM.defer under start/stop conditions. Reduced scope of threads.
181
+ 23Sep08: Added patch from tmm1 to avoid popen errors on exit.
182
+ 30Sep08: Added File.exists? checks in the args for start_tls, as suggested by
183
+ Brian Lopez (brianmario).
@@ -1,4 +1,4 @@
1
- $Id: DEFERRABLES 668 2008-01-04 23:00:34Z blackhedd $
1
+ $Id$
2
2
 
3
3
  [DOCUMENT UNDER CONSTRUCTION]
4
4
 
File without changes
File without changes
@@ -0,0 +1,15 @@
1
+ $Id$
2
+
3
+ If you have obtained an EventMachine source-tarball (.tar.gz):
4
+ unzip and untar the tarball, and enter the directory that is
5
+ created. In that directory, say:
6
+ ruby setup.rb
7
+ (You may need to be root to execute this command.)
8
+
9
+ To create documentation for EventMachine, simply type:
10
+ rdoc
11
+ in the distro directory. Rdocs will be created in subdirectory doc.
12
+
13
+ If you have obtained a gem version of EventMachine, install it in the
14
+ usual way (gem install eventmachine). You may need superuser privileges
15
+ to execute this command.
File without changes
File without changes
@@ -1,4 +1,4 @@
1
- $Id: LIGHTWEIGHT_CONCURRENCY 668 2008-01-04 23:00:34Z blackhedd $
1
+ $Id$
2
2
 
3
3
  EventMachine (EM) adds two different formalisms for lightweight concurrency to the Ruby programmer's toolbox: spawned processes and deferrables. This note will show you how to use them.
4
4
 
@@ -1,4 +1,4 @@
1
- $Id: PURE_RUBY 668 2008-01-04 23:00:34Z blackhedd $
1
+ $Id$
2
2
 
3
3
  EventMachine is supplied in three alternative versions.
4
4
 
@@ -1,4 +1,4 @@
1
- $Id: README 668 2008-01-04 23:00:34Z blackhedd $
1
+ $Id$
2
2
 
3
3
  = RUBY/EventMachine
4
4
 
@@ -1,4 +1,4 @@
1
- $Id: RELEASE_NOTES 668 2008-01-04 23:00:34Z blackhedd $
1
+ $Id$
2
2
 
3
3
  RUBY/EventMachine RELEASE NOTES
4
4
 
@@ -1,4 +1,4 @@
1
- $Id: SMTP 668 2008-01-04 23:00:34Z blackhedd $
1
+ $Id$
2
2
 
3
3
 
4
4
  [DOCUMENT UNDER CONSTRUCTION]
@@ -1,4 +1,4 @@
1
- $Id: SPAWNED_PROCESSES 668 2008-01-04 23:00:34Z blackhedd $
1
+ $Id$
2
2
 
3
3
  [DOCUMENT UNDER CONSTRUCTION]
4
4