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.
- checksums.yaml +4 -4
- data/History.md +131 -10
- data/README.md +24 -2
- data/docs/architecture.md +22 -18
- data/docs/compile_options.md +6 -6
- data/docs/deployment.md +2 -2
- data/docs/jungle/rc.d/README.md +1 -1
- data/docs/kubernetes.md +66 -0
- data/docs/plugins.md +2 -2
- data/docs/rails_dev_mode.md +29 -0
- data/docs/restart.md +1 -1
- data/docs/stats.md +142 -0
- data/docs/systemd.md +1 -1
- data/ext/puma_http11/extconf.rb +14 -0
- data/ext/puma_http11/http11_parser.c +19 -21
- data/ext/puma_http11/http11_parser.h +1 -1
- data/ext/puma_http11/http11_parser.java.rl +1 -1
- data/ext/puma_http11/http11_parser.rl +1 -1
- data/ext/puma_http11/mini_ssl.c +162 -84
- data/ext/puma_http11/org/jruby/puma/Http11Parser.java +5 -7
- data/ext/puma_http11/puma_http11.c +2 -2
- data/lib/puma.rb +34 -8
- data/lib/puma/binder.rb +50 -43
- data/lib/puma/client.rb +5 -3
- data/lib/puma/cluster.rb +40 -8
- data/lib/puma/cluster/worker_handle.rb +4 -0
- data/lib/puma/configuration.rb +4 -1
- data/lib/puma/const.rb +3 -3
- data/lib/puma/control_cli.rb +5 -1
- data/lib/puma/detect.rb +14 -10
- data/lib/puma/dsl.rb +56 -4
- data/lib/puma/error_logger.rb +12 -5
- data/lib/puma/events.rb +2 -3
- data/lib/puma/launcher.rb +4 -3
- data/lib/puma/minissl.rb +48 -17
- data/lib/puma/minissl/context_builder.rb +6 -0
- data/lib/puma/null_io.rb +12 -0
- data/lib/puma/puma_http11.jar +0 -0
- data/lib/puma/queue_close.rb +7 -7
- data/lib/puma/reactor.rb +7 -2
- data/lib/puma/request.rb +9 -4
- data/lib/puma/runner.rb +8 -3
- data/lib/puma/server.rb +46 -112
- data/lib/puma/thread_pool.rb +4 -3
- data/lib/rack/handler/puma.rb +1 -0
- metadata +7 -4
data/lib/puma/thread_pool.rb
CHANGED
@@ -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
|
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
|
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
|
data/lib/rack/handler/puma.rb
CHANGED
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.
|
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:
|
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.
|
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
|