| Commit message (Expand) | Author | Age | Files | Lines |
| * | use c++-friendly initializers for pthread initializer definitions•••these will also avoid obnoxious warnings with gcc -Wbraces.
| Rich Felker | 2012-02-29 | 1 | -3/+3 |
| * | replace bad cancellation cleanup abi with a sane one•••the old abi was intended to duplicate glibc's abi at the expense of
being ugly and slow, but it turns out glib was not even using that abi
except on non-gcc-compatible compilers (which it doesn't even support)
and was instead using an exceptions-in-c/unwind-based approach whose
abi we could not duplicate anyway without nasty dwarf2/unwind
integration.
the new abi is copied from a very old glibc abi, which seems to still
be supported/present in current glibc. it avoids all unwinding,
whether by sjlj or exceptions, and merely maintains a linked list of
cleanup functions to be called from the context of pthread_exit. i've
made some care to ensure that longjmp out of a cleanup function should
work, even though it is not required to.
this change breaks abi compatibility with programs which were using
pthread cancellation, which is unfortunate, but that's why i'm making
the change now rather than later. considering that most pthread
features have not been usable until recently anyway, i don't see it as
a major issue at this point.
| Rich Felker | 2012-02-09 | 1 | -16/+9 |
| * | macro for pthread_equal•••no sense bloating apps with a function call for an equality comparison...
| Rich Felker | 2011-08-14 | 1 | -0/+2 |
| * | use __attribute__((const)) for errno and pthread_self if __GNUC__ is defined•••this is not too ugly and should result in significant code size and
performance improvements for many programs.
| Rich Felker | 2011-06-06 | 1 | -0/+3 |
| * | implement pthread_[sg]etconcurrency.•••there is a resource limit of 0 bits to store the concurrency level
requested. thus any positive level exceeds a resource limit, resulting
in EAGAIN. :-)
| Rich Felker | 2011-05-30 | 1 | -0/+3 |
| * | fix misspelled PTHREAD_CANCELED constant | Rich Felker | 2011-04-01 | 1 | -1/+1 |
| * | match glibc/lsb cancellation abi on i386•••glibc made the ridiculous choice to use pass-by-register calling
convention for these functions, which is impossible to duplicate
directly on non-gcc compilers. instead, we use ugly asm to wrap and
convert the calling convention. presumably this works with every
compiler anyone could potentially want to use.
| Rich Felker | 2011-03-25 | 1 | -0/+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 | -0/+1 |
| * | pthread.h needs clockid_t•••actually it gets this from time.h if _POSIX_C_SOURCE or any other
feature test macros are defined, but it breaks if they're not.
| Rich Felker | 2011-03-12 | 1 | -0/+1 |
| * | missing const in some pthread_attr_* prototypes | Rich Felker | 2011-03-11 | 1 | -8/+8 |
| * | add prototypes for pthread_condattr_* and pthread_rwlockattr_* | Rich Felker | 2011-03-07 | 1 | -0/+12 |
| * | add pthread_atfork interface•••note that this presently does not handle consistency of the libc's own
global state during forking. as per POSIX 2008, if the parent process
was threaded, the child process may only call async-signal-safe
functions until one of the exec-family functions is called, so the
current behavior is believed to be conformant even if non-ideal. it
may be improved at some later time.
| Rich Felker | 2011-02-18 | 1 | -0/+2 |
| * | 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 | -45/+12 |
| * | add to pthread.h: pthread_mutex_timedlock and sched.h, time.h | Rich Felker | 2011-02-16 | 1 | -1/+3 |
| * | initial check-in, version 0.5.0 | Rich Felker | 2011-02-12 | 1 | -0/+216 |