aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ruby/qps
diff options
context:
space:
mode:
authorGravatar apolcyn <apolcyn@google.com>2017-11-27 23:27:50 -0800
committerGravatar GitHub <noreply@github.com>2017-11-27 23:27:50 -0800
commit1972e5ce741dab2ffe671e0dfde00288005f19f4 (patch)
tree4e05b3af50277536dcabb839aecc02a0b70179c7 /src/ruby/qps
parentdd312a4f47a147594530f2e0f8ae9266cf6f6ebd (diff)
parent81e9581bf380ceea2f5edaf6661c040c7fa81859 (diff)
Merge pull request #12710 from apolcyn/speedup_ruby_end2end_tests
Fix a race in ruby server shutdown and cleanup for ruby tests
Diffstat (limited to 'src/ruby/qps')
-rwxr-xr-xsrc/ruby/qps/worker.rb12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/ruby/qps/worker.rb b/src/ruby/qps/worker.rb
index 21e8815890..8258487418 100755
--- a/src/ruby/qps/worker.rb
+++ b/src/ruby/qps/worker.rb
@@ -77,8 +77,7 @@ class WorkerServiceImpl < Grpc::Testing::WorkerService::Service
Grpc::Testing::CoreResponse.new(cores: cpu_cores)
end
def quit_worker(_args, _call)
- Thread.new {
- sleep 3
+ @shutdown_thread = Thread.new {
@server.stop
}
Grpc::Testing::Void.new
@@ -87,6 +86,9 @@ class WorkerServiceImpl < Grpc::Testing::WorkerService::Service
@server = s
@server_port = sp
end
+ def join_shutdown_thread
+ @shutdown_thread.join
+ end
end
def main
@@ -107,11 +109,13 @@ def main
# Configure any errors with client or server child threads to surface
Thread.abort_on_exception = true
- s = GRPC::RpcServer.new
+ s = GRPC::RpcServer.new(poll_period: 3)
s.add_http2_port("0.0.0.0:" + options['driver_port'].to_s,
:this_port_is_insecure)
- s.handle(WorkerServiceImpl.new(s, options['server_port'].to_i))
+ worker_service = WorkerServiceImpl.new(s, options['server_port'].to_i)
+ s.handle(worker_service)
s.run
+ worker_service.join_shutdown_thread
end
main