9 Commits

Author SHA1 Message Date
Rich Felker
93cc986ab3 reorder mutex struct fields to make room for pointers (upcoming robust mutexes)
the layout has been chosen so that pointer slots 3 and 4 fit between
the integer slots on 32-bit archs, and come after the integer slots on
64-bit archs.
2011-03-17 13:17:15 -04:00
Rich Felker
b1c43161c2 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.
2011-03-17 12:21:32 -04:00
Rich Felker
5fcebcde6a optimize pthread termination in the non-detached case
we can avoid blocking signals by simply using a flag to mark that the
thread has exited and prevent it from getting counted in the rsyscall
signal-pingpong. this restores the original pthread create/join
throughput from before the sigprocmask call was added.
2011-03-10 18:31:37 -05:00
Rich Felker
4820f9268d 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.
2011-03-08 03:41:05 -05:00
Rich Felker
5fd4a98165 use the selected clock from the condattr for pthread_cond_timedwait 2011-03-07 17:39:13 -05:00
Rich Felker
e882756311 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.
2011-02-17 17:16:20 -05:00
Rich Felker
7b2dd2235d finish unifying thread register handling in preparation for porting 2011-02-15 03:56:52 -05:00
Rich Felker
0b2006c8fe begin unifying clone/thread management interface in preparation for porting 2011-02-15 03:24:58 -05:00
Rich Felker
0b44a0315b initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00