diff options
author | apolcyn <apolcyn@google.com> | 2017-11-27 23:27:50 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-27 23:27:50 -0800 |
commit | 1972e5ce741dab2ffe671e0dfde00288005f19f4 (patch) | |
tree | 4e05b3af50277536dcabb839aecc02a0b70179c7 /src/ruby/qps | |
parent | dd312a4f47a147594530f2e0f8ae9266cf6f6ebd (diff) | |
parent | 81e9581bf380ceea2f5edaf6661c040c7fa81859 (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-x | src/ruby/qps/worker.rb | 12 |
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 |