gruf 2.14.0 → 2.14.1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/gruf/server.rb +36 -22
- data/lib/gruf/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a94efb294635ae84890e1f131927003b8cacb0306947109c96fd002e02c87fee
|
4
|
+
data.tar.gz: 11983bf914472178ed2935d7ee0faf7c60d4fd2204fc6b7b3b0985449c7b5c37
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf230312d6315af4534e4bb92bbd7405a9850c1ec415895e7cb25f382239f887b8fadf0940207459d237c81c3fe2da0647244c3b1100f73a441c77e118a9bea6
|
7
|
+
data.tar.gz: e505ca2046aa82164be4656aca0b9ad7f696c070abd5c7ea52f8d6afd6e803feaaef095cf96825a2b8dc8b186f4015b8430f68f0c1f9ce472d2764976d596a4f
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,10 @@ Changelog for the gruf gem. This includes internal history before the gem was ma
|
|
2
2
|
|
3
3
|
### Pending release
|
4
4
|
|
5
|
+
### 2.14.1
|
6
|
+
|
7
|
+
- Fix issue where the server object hits thread contention in certain race conditions
|
8
|
+
|
5
9
|
### 2.14.0
|
6
10
|
|
7
11
|
- Set default client host to 0.0.0.0:9001 (same as default server host)
|
data/lib/gruf/server.rb
CHANGED
@@ -54,28 +54,30 @@ module Gruf
|
|
54
54
|
# @return [GRPC::RpcServer] The GRPC server running
|
55
55
|
#
|
56
56
|
def server
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
57
|
+
server_mutex do
|
58
|
+
@server ||= begin
|
59
|
+
# For backward compatibility, we allow these options to be passed directly
|
60
|
+
# in the Gruf::Server options, or via Gruf.rpc_server_options.
|
61
|
+
server_options = {
|
62
|
+
pool_size: options.fetch(:pool_size, Gruf.rpc_server_options[:pool_size]),
|
63
|
+
max_waiting_requests: options.fetch(:max_waiting_requests, Gruf.rpc_server_options[:max_waiting_requests]),
|
64
|
+
poll_period: options.fetch(:poll_period, Gruf.rpc_server_options[:poll_period]),
|
65
|
+
pool_keep_alive: options.fetch(:pool_keep_alive, Gruf.rpc_server_options[:pool_keep_alive]),
|
66
|
+
connect_md_proc: options.fetch(:connect_md_proc, Gruf.rpc_server_options[:connect_md_proc]),
|
67
|
+
server_args: options.fetch(:server_args, Gruf.rpc_server_options[:server_args])
|
68
|
+
}
|
69
|
+
|
70
|
+
server = if @event_listener_proc
|
71
|
+
server_options[:event_listener_proc] = @event_listener_proc
|
72
|
+
Gruf::InstrumentableGrpcServer.new(**server_options)
|
73
|
+
else
|
74
|
+
GRPC::RpcServer.new(**server_options)
|
75
|
+
end
|
76
|
+
|
77
|
+
@port = server.add_http2_port(@hostname, ssl_credentials)
|
78
|
+
@services.each { |s| server.handle(s) }
|
79
|
+
server
|
80
|
+
end
|
79
81
|
end
|
80
82
|
end
|
81
83
|
|
@@ -242,5 +244,17 @@ module Gruf
|
|
242
244
|
Process.setproctitle("gruf #{Gruf::VERSION} -- #{state}")
|
243
245
|
end
|
244
246
|
# :nocov:
|
247
|
+
#
|
248
|
+
|
249
|
+
##
|
250
|
+
# Handle thread-safe access to the server
|
251
|
+
#
|
252
|
+
def server_mutex(&block)
|
253
|
+
@server_mutex ||= begin
|
254
|
+
require 'monitor'
|
255
|
+
Monitor.new
|
256
|
+
end
|
257
|
+
@server_mutex.synchronize(&block)
|
258
|
+
end
|
245
259
|
end
|
246
260
|
end
|
data/lib/gruf/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gruf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.14.
|
4
|
+
version: 2.14.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shaun McCormick
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-04-
|
11
|
+
date: 2022-04-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler-audit
|