6034ef85d86675d063d6b1920e85e4c471b95904 |
|
03-Feb-2018 |
Tom Cherry <tomcherry@google.com> |
Add ability to read /etc/passwd and /etc/group Add the capability to read /etc/passwd and /etc/group for getpw* and getgr* functions. Bug: 27999086 Test: pwd, grp, grp_pwd_file unit tests Test: Read in custom users/groups from /etc/{passwd,group} Change-Id: Idc1f054af8a7ca34743a90493495f0ccc775a0d8
|
ac49cedc7e2bab2073a0895ef01e31dac84f590b |
|
17-Aug-2017 |
Tom Cherry <tomcherry@google.com> |
Always use CLOCK_MONOTONIC for pthreads and semaphores pthread's and semaphore's default behavior is to use CLOCK_REALTIME, however this behavior is essentially never intended, as that clock is prone to change discontinuously. What users really intend is to use CLOCK_MONOTONIC, however only pthread_cond_timedwait() provides this as an option and even there, a large amount of existing code does not opt into CLOCK_MONOTONIC. We have seen numerous bugs directly attributable to this difference. Therefore, we provide this general workaround to always use CLOCK_MONOTONIC for waiting, regardless of what the input timespec is. Specifically this impacts the below APIs: pthread_mutex_timedlock() pthread_cond_timedwait() pthread_rwlock_timedrdlock() pthread_rwlock_timedwrlock() sem_timedwait() Test: boot bullhead, boot sailfish Test: bionic pthread/semaphore unit tests Test: check that pthread_cond_timedwait() timeouts are uneffected by CLOCK_REALTIME time changes Bug: 64694413 Bug: 64623895 Bug: 35756266 Bug: 35678943 Change-Id: Ibba98f5d88be1c306d14e9b9366302ecbef6d534
|
c9a659c57b256001fd63f9825bde69e660c2655b |
|
06-Nov-2015 |
Yabin Cui <yabinc@google.com> |
Use FUTEX_WAIT_BITSET to avoid converting timeouts. Add unittests for pthread APIs with timeout parameter. Bug: 17569991 Change-Id: I6b3b9b2feae03680654cd64c3112ce7644632c87
|
fe3a83a9343f0e4ff654f09ef8ffc8a773c7c105 |
|
18-Nov-2015 |
Yabin Cui <yabinc@google.com> |
Implement pthread spin. In order to run tsan unit tests, we need to support pthread spin APIs. Bug: 18623621 Bug: 25392375 Change-Id: Icbb4a74e72e467824b3715982a01600031868e29
|
d26e780df66b9add4cf7e7ebb2f6c6749d1c5050 |
|
23-Oct-2015 |
Yabin Cui <yabinc@google.com> |
Use bionic lock in pthread_internal_t. It removes calling to pthread_mutex_lock() at the beginning of new thread, which helps to support thread sanitizer. Change-Id: Ia3601c476de7976a9177b792bd74bb200cee0e13
|
76615dae93c18ac890e167c547a08c0228709a33 |
|
17-Mar-2015 |
Yabin Cui <yabinc@google.com> |
Provide writer preference option in rwlock. Previous implementation of rwlock contains four atomic variables, which is hard to maintain and change. So I make following changes in this CL: 1. Add pending flags in rwlock.state, so we don't need to synchronize between different atomic variables. Using compare_and_swap operations on rwlock.state is enough for all state change. 2. Add pending_lock to protect readers/writers waiting and wake up operations. As waiting/wakeup is not performance critical, using a lock is easier to maintain. 3. Add writer preference option. 4. Add unit tests for rwlock. Bug: 19109156 Change-Id: Idcaa58d695ea401d64445610b465ac5cff23ec7c
|