unicorn 0.6.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,4 @@
1
+ v0.7.0 - rack.version is 1.0
1
2
  v0.6.0 - cleanups + optimizations, signals to {in,de}crement processes
2
3
  v0.5.4 - fix data corruption with some small uploads (not curl)
3
4
  v0.5.3 - fix 100% CPU usage when idle, small cleanups
data/SIGNALS CHANGED
@@ -6,28 +6,28 @@ processes are documented here as well.
6
6
 
7
7
  === Master Process
8
8
 
9
- * HUP - reload config file and gracefully restart all workers
10
- If "preload_app" is false (the default), the application code
11
- will be reloaded when workers are restarted as well.
9
+ * HUP - reload config file and gracefully restart all workers
10
+ If "preload_app" is false (the default), the application code
11
+ will be reloaded when workers are restarted as well.
12
12
 
13
- * INT/TERM - quick shutdown, kills all workers immediately
13
+ * INT/TERM - quick shutdown, kills all workers immediately
14
14
 
15
- * QUIT - graceful shutdown, waits for workers to finish their
16
- current request before finishing.
15
+ * QUIT - graceful shutdown, waits for workers to finish their
16
+ current request before finishing.
17
17
 
18
- * USR1 - reopen all logs owned by the master and all workers
19
- See Unicorn::Util.reopen_logs for what is considered a log.
18
+ * USR1 - reopen all logs owned by the master and all workers
19
+ See Unicorn::Util.reopen_logs for what is considered a log.
20
20
 
21
- * USR2 - reexecute the running binary. A separate QUIT
22
- should be sent to the original process once the child is verified to
23
- be up and running.
21
+ * USR2 - reexecute the running binary. A separate QUIT
22
+ should be sent to the original process once the child is verified to
23
+ be up and running.
24
24
 
25
- * WINCH - gracefully stops workers but keep the master running.
26
- This will only work for daemonized processes.
25
+ * WINCH - gracefully stops workers but keep the master running.
26
+ This will only work for daemonized processes.
27
27
 
28
- * TTIN - increment the number of worker processes by one
28
+ * TTIN - increment the number of worker processes by one
29
29
 
30
- * TTOU - decrement the number of worker processes by one
30
+ * TTOU - decrement the number of worker processes by one
31
31
 
32
32
  === Worker Processes
33
33
 
@@ -35,19 +35,19 @@ Sending signals directly to the worker processes should not normally be
35
35
  needed. If the master process is running, any exited worker will be
36
36
  automatically respawned.
37
37
 
38
- * INT/TERM - Quick shutdown, immediately exit.
39
- Unless WINCH has been sent to the master (or the master is killed),
40
- the master process will respawn a worker to replace this one.
38
+ * INT/TERM - Quick shutdown, immediately exit.
39
+ Unless WINCH has been sent to the master (or the master is killed),
40
+ the master process will respawn a worker to replace this one.
41
41
 
42
- * QUIT - Gracefully exit after finishing the current request.
43
- Unless WINCH has been sent to the master (or the master is killed),
44
- the master process will respawn a worker to replace this one.
42
+ * QUIT - Gracefully exit after finishing the current request.
43
+ Unless WINCH has been sent to the master (or the master is killed),
44
+ the master process will respawn a worker to replace this one.
45
45
 
46
- * USR1 - Reopen all logs owned by the worker process.
47
- See Unicorn::Util.reopen_logs for what is considered a log.
48
- Log files are not reopened until it is done processing
49
- the current request, so multiple log lines for one request
50
- (as done by Rails) will not be split across multiple logs.
46
+ * USR1 - Reopen all logs owned by the worker process.
47
+ See Unicorn::Util.reopen_logs for what is considered a log.
48
+ Log files are not reopened until it is done processing
49
+ the current request, so multiple log lines for one request
50
+ (as done by Rails) will not be split across multiple logs.
51
51
 
52
52
  === Procedure to replace a running unicorn executable
53
53
 
data/lib/unicorn.rb CHANGED
@@ -478,7 +478,7 @@ module Unicorn
478
478
  client = nil
479
479
 
480
480
  # closing anything we IO.select on will raise EBADF
481
- trap(:USR1) { nr = -65536; rd.close rescue nil }
481
+ trap(:USR1) { nr = -65536; SELF_PIPE.first.close rescue nil }
482
482
  trap(:QUIT) { alive = nil; LISTENERS.each { |s| s.close rescue nil } }
483
483
  [:TERM, :INT].each { |sig| trap(sig) { exit(0) } } # instant shutdown
484
484
  @logger.info "worker=#{worker.nr} ready"
@@ -297,6 +297,7 @@ module Unicorn
297
297
  # expands pathnames of sockets if relative to "~" or "~username"
298
298
  # expands "*:port and ":port" to "0.0.0.0:port"
299
299
  def expand_addr(address) #:nodoc
300
+ return "0.0.0.0:#{address}" if Integer === address
300
301
  return address unless String === address
301
302
 
302
303
  case address
@@ -304,7 +305,7 @@ module Unicorn
304
305
  File.expand_path($1)
305
306
  when %r{\A~}
306
307
  File.expand_path(address)
307
- when %r{\A\*:(\d+)\z}
308
+ when %r{\A(?:\*:)?(\d+)\z}
308
309
  "0.0.0.0:#$1"
309
310
  when %r{\A(.*):(\d+)\z}
310
311
  # canonicalize the name
data/lib/unicorn/const.rb CHANGED
@@ -59,7 +59,7 @@ module Unicorn
59
59
  REQUEST_URI='REQUEST_URI'.freeze
60
60
  REQUEST_PATH='REQUEST_PATH'.freeze
61
61
 
62
- UNICORN_VERSION="0.6.0".freeze
62
+ UNICORN_VERSION="0.7.0".freeze
63
63
 
64
64
  DEFAULT_HOST = "0.0.0.0".freeze # default TCP listen host address
65
65
  DEFAULT_PORT = "8080".freeze # default TCP listen port
@@ -18,7 +18,7 @@ module Unicorn
18
18
  "rack.multiprocess" => true,
19
19
  "rack.multithread" => false,
20
20
  "rack.run_once" => false,
21
- "rack.version" => [0, 1].freeze,
21
+ "rack.version" => [1, 0].freeze,
22
22
  "SCRIPT_NAME" => "".freeze,
23
23
 
24
24
  # this is not in the Rack spec, but some apps may rely on it
data/local.mk.sample CHANGED
@@ -5,7 +5,7 @@
5
5
  # This is depends on a bunch of GNU-isms from bash, sed, touch.
6
6
 
7
7
  DLEXT := so
8
- rack_ver := 0.9.1
8
+ rack_ver := 1.0.0
9
9
 
10
10
  # Avoid loading rubygems to speed up tests because gmake is
11
11
  # fork+exec heavy with Ruby.
@@ -26,6 +26,8 @@ class TestConfigurator < Test::Unit::TestCase
26
26
  assert_equal "0.0.0.0:2007", meth.call('0.0.0.0:2007')
27
27
  assert_equal "0.0.0.0:2007", meth.call(':2007')
28
28
  assert_equal "0.0.0.0:2007", meth.call('*:2007')
29
+ assert_equal "0.0.0.0:2007", meth.call('2007')
30
+ assert_equal "0.0.0.0:2007", meth.call(2007)
29
31
  assert_match %r{\A\d+\.\d+\.\d+\.\d+:2007\z}, meth.call('1:2007')
30
32
  assert_match %r{\A\d+\.\d+\.\d+\.\d+:2007\z}, meth.call('2:2007')
31
33
  end
data/unicorn.gemspec CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{unicorn}
5
- s.version = "0.6.0"
5
+ s.version = "0.7.0"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Eric Wong"]
9
- s.date = %q{2009-04-24}
9
+ s.date = %q{2009-04-25}
10
10
  s.description = %q{A small fast HTTP library and server for Rack applications.}
11
11
  s.email = %q{normalperson@yhbt.net}
12
12
  s.executables = ["unicorn", "unicorn_rails"]
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
20
20
  s.rubyforge_project = %q{unicorn}
21
21
  s.rubygems_version = %q{1.3.1}
22
22
  s.summary = %q{A small fast HTTP library and server for Rack applications.}
23
- s.test_files = ["test/unit/test_configurator.rb", "test/unit/test_response.rb", "test/unit/test_request.rb", "test/unit/test_signals.rb", "test/unit/test_upload.rb", "test/unit/test_http_parser.rb", "test/unit/test_socket_helper.rb", "test/unit/test_server.rb"]
23
+ s.test_files = ["test/unit/test_request.rb", "test/unit/test_http_parser.rb", "test/unit/test_server.rb", "test/unit/test_response.rb", "test/unit/test_configurator.rb", "test/unit/test_upload.rb", "test/unit/test_signals.rb", "test/unit/test_socket_helper.rb"]
24
24
 
25
25
  if s.respond_to? :specification_version then
26
26
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unicorn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Wong
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-04-24 00:00:00 -07:00
12
+ date: 2009-04-25 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -209,11 +209,11 @@ signing_key:
209
209
  specification_version: 2
210
210
  summary: A small fast HTTP library and server for Rack applications.
211
211
  test_files:
212
- - test/unit/test_configurator.rb
213
- - test/unit/test_response.rb
214
212
  - test/unit/test_request.rb
215
- - test/unit/test_signals.rb
216
- - test/unit/test_upload.rb
217
213
  - test/unit/test_http_parser.rb
218
- - test/unit/test_socket_helper.rb
219
214
  - test/unit/test_server.rb
215
+ - test/unit/test_response.rb
216
+ - test/unit/test_configurator.rb
217
+ - test/unit/test_upload.rb
218
+ - test/unit/test_signals.rb
219
+ - test/unit/test_socket_helper.rb