There are cases when an object can be sent to another thread as long as no other references to it exist in safe code.
Add a sendable reference type NewRef with the following features:
Derefs to the object
- Implements
Send
- Does not implement
Clone
- A method or function, tentatively named
park(), promotes a NewRef into Ref, effectively parking the object in the calling thread.
See some rationale in a comment on the GObject-introspection bug regarding thread-safety annotations.