summaryrefslogtreecommitdiff
path: root/src/thread/pthread_mutex_lock.c
AgeCommit message (Collapse)AuthorLines
2011-08-07add fast path for normal mutexes back to pthread_mutex_lockRich Felker-0/+3
2011-08-02avoid accessing mutex memory after atomic unlockRich Felker-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.
2011-04-14cheap trick to further optimize locking normal mutexesRich Felker-1/+1
2011-03-30cheap special-case optimization for normal mutexesRich Felker-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.
2011-03-17implement robust mutexesRich Felker-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.
2011-03-17unify lock and owner fields of mutex structureRich Felker-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.
2011-03-16correct error returns for error-checking mutexesRich Felker-1/+5
2011-02-17reorganize pthread data structures and move the definitions to alltypes.hRich Felker-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.
2011-02-12initial check-in, version 0.5.0v0.5.0Rich Felker-0/+9