in reply to How can I unshare something?
This sounds to me as if you have reimplemented Thread::Queue except with the problem of sharing/unsharing data, which Thread::Queue should shield you from?