mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
32 lines
627 B
Ruby
32 lines
627 B
Ruby
|
require_relative '../../spec_helper'
|
||
|
require 'monitor'
|
||
|
|
||
|
describe "MonitorMixin#mon_initialize" do
|
||
|
it "can be called in initialize_copy to get a new Mutex and used with synchronize" do
|
||
|
cls = Class.new do
|
||
|
include MonitorMixin
|
||
|
|
||
|
def initialize(*array)
|
||
|
mon_initialize
|
||
|
@array = array
|
||
|
end
|
||
|
|
||
|
def to_a
|
||
|
synchronize { @array.dup }
|
||
|
end
|
||
|
|
||
|
def initialize_copy(other)
|
||
|
mon_initialize
|
||
|
|
||
|
synchronize do
|
||
|
@array = other.to_a
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
instance = cls.new(1, 2, 3)
|
||
|
copy = instance.dup
|
||
|
copy.should_not equal(instance)
|
||
|
end
|
||
|
end
|