-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Closed
Labels
Description
Apart from regular locking methods, coroutine's Mutex provides a selectable onLock method.
Selectable locking was added prior to version 1.0.0 for the sake of consistency and now adds more maintenance and public API burden than actual utility:
- It cannot be used along with
owner-based locking - It cannot be reliably aligned with similar synchronous primitives API, e.g.
Semaphore - It obfuscated an API of Mutex-based primitives, such as
ReadWriteMutex, where its read counter-part is cannot provide any selectable primitives - Its implementation, in a nutshell, relies on a code-heavy
DCSSprimitive, that implicitly increases the size of all Android applications that useMutexin any way
As far as we know, it's neither used in our own coroutines-heavy internal codebases nor in any open-source projects and our research shows that it has no sane practical uses.
Thus the proposal is to deprecate it for removal in 1.6.0, deprecate with ERROR in 1.7.0 and, after further investigation, either remove it completely in 1.8.0 or provide a non-linearizable stub implementation and maintain it forever