[PATCH] new mutex implementation 2. posting

Thomas Pfaff tpfaff@gmx.net
Sun Sep 22 23:26:00 GMT 2002

On Sun, 22 Sep 2002, Robert Collins wrote:

> On Sat, 2002-09-21 at 01:47, Christopher Faylor wrote:
> > I haven't been following very closely.  Is the reason why we are not using
> > critical sections that TryEnterCriticalSection isn't available anywhere?
> > If so, then we can probably fix that with some assembly programming.
> Thats a factor, yes.
> > Critical sections are *so* much faster than mutexes or semaphores that
> > it makes sense to use them if possible.
> >
> > Or, maybe we're talking about something else entirely...
> Well there are two things. Thomas's work gives use recursive and error
> checking mutexes, which aren't currently supported. He also points out
> that semaphores leverage critical sections on NT, so should be ~ in
> speed.

The third and most important point is that the current implementation is
not fork save. After a fork a mutex is recreated and its state is lost.
POSIX requires that the state is preserved. While this is not important
for locks that are hold by another thread all locks of the forking thread
should remain locked. IMHO this can not be done with kernel mutexes nor
with critical sections.


More information about the Cygwin-patches mailing list