(going back as far as Solaris 10) Context:
The APR default on Solaris is fcntl, because of some problems recovering the mutex after a child process crash on now-ancient levels of Solaris. The choice of fcntl is bad news for a threaded server which uses an accept mutex (e.g., worker MPM with multiple listening sockets) when other modules are using their own fcntl-based mutexes, since the kernel will think there is a potential deadlock when the asynchronous listener thread and request handler thread try to obtain their mutexes in the opposite order of another process. Setting "AcceptMutex pthread" in the config can work around some instances of this problem (when only one plug-in module has its own hard-coded fcntl-based mutex). Changing the APR default to pthread would solve it more generally.