From 7e70e9c73cd66e1992ffce885f70b8c8d410618f Mon Sep 17 00:00:00 2001 From: Farid Zakaria Date: Fri, 14 Feb 2020 12:50:56 -0800 Subject: [PATCH] Simply make queue always false when @synchronous --- .../concurrent/executor/ruby_thread_pool_executor.rb | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb b/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb index e2cd301e1..3f103f95c 100644 --- a/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb +++ b/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb @@ -154,11 +154,8 @@ def ns_limited_queue? def ns_execute(*args, &task) ns_reset_if_forked - assigned_worker = ns_assign_worker(*args, &task) - if assigned_worker + if ns_assign_worker(*args, &task) || ns_enqueue(*args, &task) @scheduled_task_count += 1 - elsif !@synchronous - ns_enqueue(*args, &task) else handle_fallback(*args, &task) end @@ -213,6 +210,10 @@ def ns_assign_worker(*args, &task) # # @!visibility private def ns_enqueue(*args, &task) + if @synchronous + return false + end + if !ns_limited_queue? || @queue.size < @max_queue @queue << [task, args] true