I propose we do one of the following.

1) Remove nested muxtes, meaning all mutexes become non-nested (they will
deadlock whenever the same thread locks twice).
Pros: Nested mutexes are lame and are unnecessary. The current implementation
in APR is broken.
Cons: Some applications may be written to rely on nested mutexes.


2) Remove the option for nested mutexes and fall back to whatever the OS provides
natively.
Pros: Faster mutexes on both Unix and Windows, since we don't have to monkey around
to try to get things working one way or the other when it's not native (see the non-nested
impl. on windows for an example of monkeying-around).
Cons: APR can deliver slightly different functionality depending on the underlying mutex
implementation. I don't think this is so bad, since you don't need to depend on
non-nested mutex behavior anyway.




I'm in favor of #1, but I could go for #2. Does anyone have a compelling reason to keep
nested mutex behavior around?


Pros



Reply via email to