summaryrefslogtreecommitdiff
path: root/src/thread/pthread_mutex_init.c
AgeCommit message (Collapse)AuthorLines
2013-07-22make pthread attribute types structs, even when they just have one fieldRich Felker-1/+1
this change is to get the right tags for C++ ABI matching. it should have no other effects.
2012-11-08clean up sloppy nested inclusion from pthread_impl.hRich Felker-1/+1
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).
2012-09-06use restrict everywhere it's required by c99 and/or posix 2008Rich Felker-1/+1
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.
2011-03-17implement robust mutexesRich Felker-1/+1
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-08fix and optimize non-default-type mutex behaviorRich Felker-2/+1
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-02-12initial check-in, version 0.5.0v0.5.0Rich Felker-0/+9