1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
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
|