| Commit message (Expand) | Author | Age | Files | Lines |
| * | recovering ownerdead robust mutex must reset recursive lock count | Rich Felker | 2011-10-03 | 1 | -0/+1 |
| * | use count=0 instead of 1 for recursive mutex with only one lock reference•••this simplifies the code paths slightly, but perhaps what's nicer is
that it makes recursive mutexes fully reentrant, i.e. locking and
unlocking from a signal handler works even if the interrupted code was
in the middle of locking or unlocking.
| Rich Felker | 2011-10-03 | 1 | -2/+0 |
| * | avoid accessing mutex memory after atomic unlock•••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.
| Rich Felker | 2011-08-02 | 1 | -7/+7 |
| * | debloat: use __syscall instead of syscall where possible•••don't waste time (and significant code size due to function call
overhead!) setting errno when the result of a syscall does not matter
or when it can't fail.
| Rich Felker | 2011-04-17 | 1 | -1/+1 |
| * | cheap trick to further optimize locking normal mutexes | Rich Felker | 2011-04-14 | 1 | -1/+1 |
| * | revert mutex "optimization" that turned out to be worse | Rich Felker | 2011-03-29 | 1 | -1/+1 |
| * | global cleanup to use the new syscall interface | Rich Felker | 2011-03-20 | 1 | -2/+2 |
| * | implement robust mutexes•••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.
| Rich Felker | 2011-03-17 | 1 | -3/+35 |
| * | unify lock and owner fields of mutex structure•••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.
| Rich Felker | 2011-03-17 | 1 | -3/+2 |
| * | optimize contended normal mutex case; add int compare-and-swap atomic | Rich Felker | 2011-03-17 | 1 | -1/+1 |
| * | simplify logic, slightly optimize contended case for non-default mutex types | Rich Felker | 2011-03-16 | 1 | -4/+2 |
| * | correct error returns for error-checking mutexes | Rich Felker | 2011-03-16 | 1 | -1/+1 |
| * | simplify and optimize pthread_mutex_trylock | Rich Felker | 2011-03-08 | 1 | -17/+16 |
| * | fix and optimize non-default-type mutex behavior•••problem 1: mutex type from the attribute was being ignored by
pthread_mutex_init, so recursive/errorchecking mutexes were never
being used at all.
problem 2: ownership of recursive mutexes was not being enforced at
unlock time.
| Rich Felker | 2011-03-08 | 1 | -15/+12 |
| * | reorganize pthread data structures and move the definitions to alltypes.h•••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.
| Rich Felker | 2011-02-17 | 1 | -13/+13 |
| * | initial check-in, version 0.5.0 | Rich Felker | 2011-02-12 | 1 | -0/+28 |