diff --git a/lib/concurrent-ruby/concurrent/async.rb b/lib/concurrent-ruby/concurrent/async.rb index 5e125e4a0..e7329dad4 100644 --- a/lib/concurrent-ruby/concurrent/async.rb +++ b/lib/concurrent-ruby/concurrent/async.rb @@ -267,10 +267,18 @@ def self.included(base) # @!visibility private module ClassMethods - def new(*args, &block) - obj = original_new(*args, &block) - obj.send(:init_synchronization) - obj + if RUBY_VERSION >= "2.7.0" + def new(*args, **kwargs, &block) + obj = original_new(*args, **kwargs, &block) + obj.send(:init_synchronization) + obj + end + else + def new(*args, &block) + obj = original_new(*args, &block) + obj.send(:init_synchronization) + obj + end end end private_constant :ClassMethods