puma 5.1.1-java → 5.3.1-java

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puma might be problematic. Click here for more details.

Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/History.md +131 -10
  3. data/README.md +24 -2
  4. data/docs/architecture.md +22 -18
  5. data/docs/compile_options.md +6 -6
  6. data/docs/deployment.md +2 -2
  7. data/docs/jungle/rc.d/README.md +1 -1
  8. data/docs/kubernetes.md +66 -0
  9. data/docs/plugins.md +2 -2
  10. data/docs/rails_dev_mode.md +29 -0
  11. data/docs/restart.md +1 -1
  12. data/docs/stats.md +142 -0
  13. data/docs/systemd.md +1 -1
  14. data/ext/puma_http11/extconf.rb +14 -0
  15. data/ext/puma_http11/http11_parser.c +19 -21
  16. data/ext/puma_http11/http11_parser.h +1 -1
  17. data/ext/puma_http11/http11_parser.java.rl +1 -1
  18. data/ext/puma_http11/http11_parser.rl +1 -1
  19. data/ext/puma_http11/mini_ssl.c +162 -84
  20. data/ext/puma_http11/org/jruby/puma/Http11Parser.java +5 -7
  21. data/ext/puma_http11/puma_http11.c +2 -2
  22. data/lib/puma.rb +34 -8
  23. data/lib/puma/binder.rb +50 -43
  24. data/lib/puma/client.rb +5 -3
  25. data/lib/puma/cluster.rb +40 -8
  26. data/lib/puma/cluster/worker_handle.rb +4 -0
  27. data/lib/puma/configuration.rb +4 -1
  28. data/lib/puma/const.rb +3 -3
  29. data/lib/puma/control_cli.rb +5 -1
  30. data/lib/puma/detect.rb +14 -10
  31. data/lib/puma/dsl.rb +56 -4
  32. data/lib/puma/error_logger.rb +12 -5
  33. data/lib/puma/events.rb +2 -3
  34. data/lib/puma/launcher.rb +4 -3
  35. data/lib/puma/minissl.rb +48 -17
  36. data/lib/puma/minissl/context_builder.rb +6 -0
  37. data/lib/puma/null_io.rb +12 -0
  38. data/lib/puma/puma_http11.jar +0 -0
  39. data/lib/puma/queue_close.rb +7 -7
  40. data/lib/puma/reactor.rb +7 -2
  41. data/lib/puma/request.rb +9 -4
  42. data/lib/puma/runner.rb +8 -3
  43. data/lib/puma/server.rb +46 -112
  44. data/lib/puma/thread_pool.rb +4 -3
  45. data/lib/rack/handler/puma.rb +1 -0
  46. metadata +7 -4
@@ -13,7 +13,7 @@ module Puma
13
13
  # a thread pool via the `Puma::ThreadPool#<<` operator where it is stored in a `@todo` array.
14
14
  #
15
15
  # Each thread in the pool has an internal loop where it pulls a request from the `@todo` array
16
- # and proceses it.
16
+ # and processes it.
17
17
  class ThreadPool
18
18
  class ForceShutdown < RuntimeError
19
19
  end
@@ -220,7 +220,7 @@ module Puma
220
220
  # then the `@todo` array would stay the same size as the reactor works
221
221
  # to try to buffer the request. In that scenario the next call to this
222
222
  # method would not block and another request would be added into the reactor
223
- # by the server. This would continue until a fully bufferend request
223
+ # by the server. This would continue until a fully buffered request
224
224
  # makes it through the reactor and can then be processed by the thread pool.
225
225
  def wait_until_not_full
226
226
  with_mutex do
@@ -240,11 +240,12 @@ module Puma
240
240
 
241
241
  # @version 5.0.0
242
242
  def wait_for_less_busy_worker(delay_s)
243
+ return unless delay_s && delay_s > 0
244
+
243
245
  # Ruby MRI does GVL, this can result
244
246
  # in processing contention when multiple threads
245
247
  # (requests) are running concurrently
246
248
  return unless Puma.mri?
247
- return unless delay_s > 0
248
249
 
249
250
  with_mutex do
250
251
  return if @shutdown
@@ -31,6 +31,7 @@ module Rack
31
31
 
32
32
  conf = ::Puma::Configuration.new(options, default_options) do |user_config, file_config, default_config|
33
33
  if options.delete(:Verbose)
34
+ require 'rack/common_logger'
34
35
  app = Rack::CommonLogger.new(app, STDOUT)
35
36
  end
36
37
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puma
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.1.1
4
+ version: 5.3.1
5
5
  platform: java
6
6
  authors:
7
7
  - Evan Phoenix
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-10 00:00:00.000000000 Z
11
+ date: 2021-05-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -17,8 +17,8 @@ dependencies:
17
17
  - !ruby/object:Gem::Version
18
18
  version: '2.0'
19
19
  name: nio4r
20
- type: :runtime
21
20
  prerelease: false
21
+ type: :runtime
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
@@ -53,10 +53,13 @@ files:
53
53
  - docs/jungle/rc.d/README.md
54
54
  - docs/jungle/rc.d/puma
55
55
  - docs/jungle/rc.d/puma.conf
56
+ - docs/kubernetes.md
56
57
  - docs/nginx.md
57
58
  - docs/plugins.md
59
+ - docs/rails_dev_mode.md
58
60
  - docs/restart.md
59
61
  - docs/signals.md
62
+ - docs/stats.md
60
63
  - docs/systemd.md
61
64
  - ext/puma_http11/PumaHttp11Service.java
62
65
  - ext/puma_http11/ext_help.h
@@ -137,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
137
140
  - !ruby/object:Gem::Version
138
141
  version: '0'
139
142
  requirements: []
140
- rubygems_version: 3.0.6
143
+ rubygems_version: 3.1.6
141
144
  signing_key:
142
145
  specification_version: 4
143
146
  summary: Puma is a simple, fast, threaded, and highly concurrent HTTP 1.1 server for