summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/mutex_m.rb12
-rw-r--r--test/test_mutex_m.rb21
2 files changed, 26 insertions, 7 deletions
diff --git a/lib/mutex_m.rb b/lib/mutex_m.rb
index 17ec9924e4..4c888d6a17 100644
--- a/lib/mutex_m.rb
+++ b/lib/mutex_m.rb
@@ -44,13 +44,11 @@ module Mutex_m
Ractor.make_shareable(VERSION) if defined?(Ractor)
def Mutex_m.define_aliases(cl) # :nodoc:
- cl.module_eval %q{
- alias locked? mu_locked?
- alias lock mu_lock
- alias unlock mu_unlock
- alias try_lock mu_try_lock
- alias synchronize mu_synchronize
- }
+ cl.alias_method(:locked?, :mu_locked?)
+ cl.alias_method(:lock, :mu_lock)
+ cl.alias_method(:unlock, :mu_unlock)
+ cl.alias_method(:try_lock, :mu_try_lock)
+ cl.alias_method(:synchronize, :mu_synchronize)
end
def Mutex_m.append_features(cl) # :nodoc:
diff --git a/test/test_mutex_m.rb b/test/test_mutex_m.rb
index e5cfbc8b5f..f938e71729 100644
--- a/test/test_mutex_m.rb
+++ b/test/test_mutex_m.rb
@@ -55,4 +55,25 @@ class TestMutexM < Test::Unit::TestCase
def test_initialize_no_args
assert NoArgInitializeChild.new
end
+
+ def test_alias_extended_object
+ object = Object.new
+ object.extend(Mutex_m)
+
+ assert object.respond_to?(:locked?)
+ assert object.respond_to?(:lock)
+ assert object.respond_to?(:unlock)
+ assert object.respond_to?(:try_lock)
+ assert object.respond_to?(:synchronize)
+ end
+
+ def test_alias_included_class
+ object = NoArgInitializeChild.new
+
+ assert object.respond_to?(:locked?)
+ assert object.respond_to?(:lock)
+ assert object.respond_to?(:unlock)
+ assert object.respond_to?(:try_lock)
+ assert object.respond_to?(:synchronize)
+ end
end