| Commit message (Expand) | Author | Age | Files | Lines |
| * | clean up sloppy nested inclusion from pthread_impl.h•••this mirrors the stdio_impl.h cleanup. one header which is not
strictly needed, errno.h, is left in pthread_impl.h, because since
pthread functions return their error codes rather than using errno,
nearly every single pthread function needs the errno constants.
in a few places, rather than bringing in string.h to use memset, the
memset was replaced by direct assignment. this seems to generate much
better code anyway, and makes many functions which were previously
non-leaf functions into leaf functions (possibly eliminating a great
deal of bloat on some platforms where non-leaf functions require ugly
prologue and/or epilogue).
| Rich Felker | 2012-11-08 | 1 | -0/+1 |
| * | avoid the thread-ptr-init behavior of sigaction when not installing handler•••this is necessary because posix_spawn calls sigaction after vfork, and
if the thread pointer is not already initialized, initializing it in
the child corrupts the parent process's state.
| Rich Felker | 2012-10-11 | 1 | -1/+2 |
| * | use restrict everywhere it's required by c99 and/or posix 2008•••to deal with the fact that the public headers may be used with pre-c99
compilers, __restrict is used in place of restrict, and defined
appropriately for any supported compiler. we also avoid the form
[restrict] since older versions of gcc rejected it due to a bug in the
original c99 standard, and instead use the form *restrict.
| Rich Felker | 2012-09-06 | 1 | -2/+2 |
| * | remove unused var in new sigaction code | Rich Felker | 2012-07-11 | 1 | -1/+1 |
| * | changes to kernel sigaction struct handling in preparation for mips port | Rich Felker | 2012-07-11 | 1 | -14/+7 |
| * | work around "signal loses thread pointer" issue with "approach 2"•••this was discussed on the mailing list and no consensus on the
preferred solution was reached, so in anticipation of a release, i'm
just committing a minimally-invasive solution that avoids the problem
by ensuring that multi-threaded-capable programs will always have
initialized the thread pointer before any signal handler can run.
in the long term we may switch to initializing the thread pointer at
program start time whenever the program has the potential to access
any per-thread data.
| Rich Felker | 2012-02-27 | 1 | -0/+5 |
| * | overhaul implementation-internal signal protections•••the new approach relies on the fact that the only ways to create
sigset_t objects without invoking UB are to use the sig*set()
functions, or from the masks returned by sigprocmask, sigaction, etc.
or in the ucontext_t argument to a signal handler. thus, as long as
sigfillset and sigaddset avoid adding the "protected" signals, there
is no way the application will ever obtain a sigset_t including these
bits, and thus no need to add the overhead of checking/clearing them
when sigprocmask or sigaction is called.
note that the old code actually *failed* to remove the bits from
sa_mask when sigaction was called.
the new implementations are also significantly smaller, simpler, and
faster due to ignoring the useless "GNU HURD signals" 65-1024, which
are not used and, if there's any sanity in the world, never will be
used.
| Rich Felker | 2011-05-07 | 1 | -1/+1 |
| * | use a separate signal from SIGCANCEL for SIGEV_THREAD timers•••otherwise we cannot support an application's desire to use
asynchronous cancellation within the callback function. this change
also slightly debloats pthread_create.c.
| Rich Felker | 2011-04-14 | 1 | -1/+1 |
| * | global cleanup to use the new syscall interface | Rich Felker | 2011-03-20 | 1 | -1/+1 |
| * | fix previous commit that broke sigreturn. looks like the asm is needed. | Rich Felker | 2011-02-13 | 1 | -5/+2 |
| * | fix omission that kept sa_restorer from being used | Rich Felker | 2011-02-13 | 1 | -1/+1 |
| * | initial check-in, version 0.5.0 | Rich Felker | 2011-02-12 | 1 | -0/+48 |