3 ms·
> the set of locks that a thread holds is basically an implicit dynamically-scoped global variable that can affect the correctness of the program One technique
by marshray 8y ago
> the set of locks that a thread holds is basically an implicit dynamically-scoped global variable that can affect the correctness of the program
One technique to get a handle on this situation is making the mutexes actual explicit global variables.
"But global variables are bad" they will say. Yeah. And it reflects the reality.
"But I need a separate mutex for each object instance like they recommended in 1995 https://docs.oracle.com/javase/tutorial/essential/concurrency/syncmeth.html https://docs.oracle.com/javase/tutorial/essential/concurrenc... " they will say. Have fun with that.
Python and early Linux kernels use a single global mutex for access to all shared mutable state. In my experience, this is an entirely reasonable design decision for a huge majority of applications.