blob: e0fe6c2d979996a351a9fd5288b17927c36a4ff3 (
plain)
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
|