From a25f04d9accac119eb57acd8e65d14cab45500f9 Mon Sep 17 00:00:00 2001 From: Abe Tomoaki Date: Wed, 10 Apr 2024 11:53:33 +0900 Subject: [PATCH] Eliminate unnecessary waiting time (#73) If the request for main is finished, sleep will also be finished. --------- Co-authored-by: Sutou Kouhei --- lib/groonga-query-log/server-verifier.rb | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/groonga-query-log/server-verifier.rb b/lib/groonga-query-log/server-verifier.rb index f27af9f..ee19025 100644 --- a/lib/groonga-query-log/server-verifier.rb +++ b/lib/groonga-query-log/server-verifier.rb @@ -195,13 +195,21 @@ def verify_command(groonga1_client, groonga2_client, command) # groonga2 is new Groonga. response2 = nil if @options.verify_cancel? + sleep_thread = nil request = groonga2_client.execute(command) do |response| response2 = response + sleep_thread.kill end + # Randomize timing of sending request_cancel command - sleep(rand(0..@options.cancel_max_wait)) - @options.groonga2.create_client do |cancel_client| - cancel_client.execute("request_cancel", id: command.request_id) + sleep_thread = Thread.new do + sleep(rand(0..@options.cancel_max_wait)) + end + sleep_thread.join + unless response2 + @options.groonga2.create_client do |cancel_client| + cancel_client.execute("request_cancel", id: command.request_id) + end end request.wait