--log-concurrent-update Log when T2 updates an object created by T1 --raise-concurrent-update Raise a RuntimeError when T2 updates an object created by T1
becomeas well, which will make programming proxies really nice :grinning:
f: A -> B, g: B -> Cfor composition of passes;
raiseon cross-thread access (mutation?)
Thread.new(heap: :shared)or something?
tzsetwall_basicand that's trying to aquire a lock that is not held in this process
describe "Object#become" do it "replaces the receiver with the argument bidirectionally" do a, b = "me", "you" a.should eql("me") b.should eql("you") a.become b a.should eql("you") b.should eql("me") end end
Object#becomemay seem whimsical, but it's not because the same mechanism must work to implement evacuation / compaction in the heap