summaryrefslogtreecommitdiffstats
path: root/libc/bionic/pthread_mutex.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Small style cleanup.Elliott Hughes2013-12-181-1/+1
| | | | Change-Id: Ib45a4a2296232968296f9bd7cc3592ba46fd412d
* Merge "Properly detect timeout in pthread_mutex_lock_timeout_np_impl"Elliott Hughes2013-12-181-1/+1
|\
| * Properly detect timeout in pthread_mutex_lock_timeout_np_implKen Mixter2013-12-171-1/+1
| | | | | | | | | | | | | | Previously we were checking against a positive errno which would not be returned from a system call. Change-Id: I8e3a36f6fbf5ccc2191a152a1def37e2d6f93124
* | Remove harmful attempts to be helpful in pthread_mutex functions.Elliott Hughes2013-12-111-21/+4
|/ | | | | | | | | | | Most callers won't check for EINVAL, so it's best to fail early. GCC takes the nonnull attribute as a guarantee that an argument won't be NULL, so these hacks were already ineffective, which is how we found that at least one commercial game was using NULL as if it's a mutex, but actually getting no-op behavior. Bug: 11971278 Change-Id: I89646e043d931778805a8b692e07a34d076ee6bf
* Clean up forking and cloning.Elliott Hughes2013-11-191-1/+0
| | | | | | | | | The kernel now maintains the pthread_internal_t::tid field for us, and __clone was only used in one place so let's inline it so we don't have to leave such a dangerous function lying around. Also rename files to match their content and remove some useless #includes. Change-Id: I24299fb4a940e394de75f864ee36fdabbd9438f9
* Move the pthread debugging flags to the right place.Elliott Hughes2013-10-311-8/+0
| | | | Change-Id: Ie805bd837d1f72cdf1818e056c0baeb0857e4e84
* <pthread.h> fixes and pthread cleanup.Elliott Hughes2013-10-311-0/+844
<pthread.h> was missing nonnull attributes, noreturn on pthread_exit, and had incorrect cv qualifiers for several standard functions. I've also marked the non-standard stuff (where I count glibc rather than POSIX as "standard") so we can revisit this cruft for LP64 and try to ensure we're compatible with glibc. I've also broken out the pthread_cond* functions into a new file. I've made the remaining pthread files (plus ptrace) part of the bionic code and fixed all the warnings. I've added a few more smoke tests for chunks of untested pthread functionality. We no longer need the libc_static_common_src_files hack for any of the pthread implementation because we long since stripped out the rest of the armv5 support, and this hack was just to ensure that __get_tls in libc.a went via the kernel if necessary. This patch also finishes the job of breaking up the pthread.c monolith, and adds a handful of new tests. Change-Id: Idc0ae7f5d8aa65989598acd4c01a874fe21582c7