about summary refs log tree commit diff
path: root/src/thread/pthread_mutex_lock.c
Commit message (Collapse)AuthorAgeFilesLines
* add fast path for normal mutexes back to pthread_mutex_lockRich Felker2011-08-071-0/+3
|
* avoid accessing mutex memory after atomic unlockRich Felker2011-08-021-13/+1
| | | | | | | this change is needed to fix a race condition and ensure that it's possible to unlock and destroy or unmap the mutex as soon as pthread_mutex_lock succeeds. POSIX explicitly gives such an example in the rationale and requires an implementation to allow such usage.
* cheap trick to further optimize locking normal mutexesRich Felker2011-04-141-1/+1
|
* cheap special-case optimization for normal mutexesRich Felker2011-03-301-0/+4
| | | | | | | cycle-level benchmark on atom cpu showed typical pthread_mutex_lock call dropping from ~120 cycles to ~90 cycles with this change. benefit may vary with compiler options and version, but this optimization is very cheap to make and should always help some.
* implement robust mutexesRich Felker2011-03-171-3/+3
| | | | | | some of this code should be cleaned up, e.g. using macros for some of the bit flags, masks, etc. nonetheless, the code is believed to be working and correct at this point.
* unify lock and owner fields of mutex structureRich Felker2011-03-171-2/+3
| | | | | | this change is necessary to free up one slot in the mutex structure so that we can use doubly-linked lists in the implementation of robust mutexes.
* correct error returns for error-checking mutexesRich Felker2011-03-161-1/+5
|
* reorganize pthread data structures and move the definitions to alltypes.hRich Felker2011-02-171-1/+1
| | | | | | | | this allows sys/types.h to provide the pthread types, as required by POSIX. this design also facilitates forcing ABI-compatible sizes in the arch-specific alltypes.h, while eliminating the need for developers changing the internals of the pthread types to poke around with arch-specific headers they may not be able to test.
* initial check-in, version 0.5.0 v0.5.0Rich Felker2011-02-121-0/+9