summaryrefslogtreecommitdiff
path: root/ANNOUNCE
diff options
context:
space:
mode:
authorrpj <rpj>2002-01-07 07:10:46 +0000
committerrpj <rpj>2002-01-07 07:10:46 +0000
commit0337d817b128c648d97a79f42b303421b5b76386 (patch)
tree3a0204c23010279d7c0ef7f7a229205ca628295a /ANNOUNCE
parent6922362c66bbfaa3ac9b7bb6be24368d790d28d6 (diff)
* mutex.c (pthread_mutex_init): Remove critical
section calls. (pthread_mutex_destroy): Likewise. (pthread_mutex_unlock): Likewise. (pthread_mutex_trylock): Likewise; recursive mutexes now increment the lock count rather than return EBUSY; errorcheck mutexes return EDEADLCK rather than EBUSY. This behaviour is consistent with the Solaris pthreads implementation. * implement.h (pthread_mutex_t_): Remove critical section element - no longer needed.
Diffstat (limited to 'ANNOUNCE')
-rw-r--r--ANNOUNCE11
1 files changed, 10 insertions, 1 deletions
diff --git a/ANNOUNCE b/ANNOUNCE
index a6a84c5..6b9f0e5 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -31,7 +31,7 @@ platform dependence
-------------------
As Win9x doesn't provide one, the library now contains
it's own InterlockedCompareExchange() routine. It is used to
-implement spinlocks and barriers, and soon may be used in mutexes.
+implement spinlocks and barriers, and also in mutexes.
This routine relies on the CMPXCHG machine instruction which
is only available in i486 or above CPUs. This library
(from snapshot 20010712 onwards) therefore no longer runs on
@@ -53,6 +53,15 @@ Removed potential race condition in pthread_mutex_trylock and
pthread_mutex_lock;
- Alexander Terekhov <TEREKHOV@de.ibm.com>
+The behaviour of pthread_mutex_trylock in relation to
+recursive mutexes was inconsistent with commercial implementations.
+Trylock would return EBUSY if the lock was owned already
+regardless of mutex type. Trylock now increments the recursion
+count and returns 0 for RECURSIVE mutexes, and will now return
+EDEADLCK instead of EBUSY for ERRORCHECK mutexes. This is
+consistent with Solaris.
+- Thomas Pfaff <tpfaff@gmx.net>
+
---------------------------
Known bugs in this snapshot
---------------------------