File tree Expand file tree Collapse file tree 3 files changed +19
-8
lines changed
lib/bootsnap/load_path_cache Expand file tree Collapse file tree 3 files changed +19
-8
lines changed Original file line number Diff line number Diff line change 1
1
# Unreleased
2
2
3
+ * Ensure ` $LOAD_PATH.dup ` is Ractor shareable to fix an conflit with ` did_you_mean ` .
4
+ * Allow to ignore direcotries using absolute paths.
3
5
* Support YAML and JSON CompileCache on TruffleRuby.
4
6
* Support LoadPathCache on TruffleRuby.
5
7
Original file line number Diff line number Diff line change @@ -56,16 +56,10 @@ def uniq!(*args)
56
56
end
57
57
58
58
def dup
59
- new_obj = super
60
- new_obj . remove_instance_variable ( :@lpc_observer )
61
- new_obj
59
+ [ ] + self
62
60
end
63
61
64
- def clone
65
- new_obj = super
66
- ChangeObserver . unregister ( new_obj )
67
- new_obj
68
- end
62
+ alias_method :clone , :dup
69
63
end
70
64
71
65
def self . register ( arr , observer )
Original file line number Diff line number Diff line change @@ -10,6 +10,7 @@ class ChangeObserverTest < Minitest::Test
10
10
def setup
11
11
super
12
12
@observer = Object . new
13
+ @observer . instance_variable_set ( :@mutex , Mutex . new )
13
14
@arr = [ ]
14
15
ChangeObserver . register ( @arr , @observer )
15
16
end
@@ -78,6 +79,20 @@ def test_register_twice_observes_once
78
79
assert_equal ( %w( a ) , @arr )
79
80
end
80
81
82
+ def test_dup_returns_ractor_shareable_instance
83
+ return unless defined? ( Ractor )
84
+
85
+ ChangeObserver . register ( @arr , @observer )
86
+ Ractor . make_shareable ( @arr . dup . freeze )
87
+ end
88
+
89
+ def test_clone_returns_ractor_shareable_instance
90
+ return unless defined? ( Ractor )
91
+
92
+ ChangeObserver . register ( @arr , @observer )
93
+ Ractor . make_shareable ( @arr . clone . freeze )
94
+ end
95
+
81
96
def test_uniq_without_block
82
97
@observer . expects ( :reinitialize ) . never
83
98
@arr . uniq!
You can’t perform that action at this time.
0 commit comments