Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Jul 2013 11:09:04 -0400 (EDT)
From:      Daniel Eischen <>
To:        Joe Marcus Clarke <>
Cc:        Koop Mast <>,
Subject:   Re: Mutexes and error checking
Message-ID:  <>
In-Reply-To: <>
References:  <>

Next in thread | Previous in thread | Raw E-Mail | Index | Archive | Help
On Wed, 17 Jul 2013, Joe Marcus Clarke wrote:

> It seems we might have a discrepancy between the way our pthread
> implementation works compared to Linux.  If a mutex is set to NORMAL
> type and one goes to unlock it, EPERM is returned unless the current
> thread is the mutex owner.  While this sounds perfectly sane, it appears
> Linux only returns EPERM if the mutex type is ERRORCHECK.
> We are seeing some problems in ported code because of this.  As a
> suggestion, if people agree, would it be possible to emulate the
> behavior of Linux and only return EPERM if the mutex is of type

First, any software that does that is broken.

Second, the POSIX spec seems to imply that an error is returned
when a different thread tries to unlock an already locked mutex:

Is the mutex robust or not robust?  If not robust
cannot be unlocked by any other thread than the owner.
So, it would seem to be wrong to _not_ return an
error when the mutex is not unlocked after
pthread_mutex_unlock() returns.


Want to link to this message? Use this URL: <>