I have an Arc<T> . Without cloning the T itself, is there a way to produce an Rc<T> ?
EDIT: Some context. I have some single threaded functions that take Rc<T> as argument. I am now writing some multi threaded code, which is passing Arc<T>'s around.
If the Arc is not unique, the conversion is unsound, because an Rc's ref counts are not atomic. So when the Rc was cloned or dropped you would create a data race with other threads, even though the Rc itself did not cross a thread boundary.