glibc/nptl
Torvald Riegel a2f0363f81 Add and use new glibc-internal futex API.
This adds new functions for futex operations, starting with wait,
abstimed_wait, reltimed_wait, wake.  They add documentation and error
checking according to the current draft of the Linux kernel futex manpage.

Waiting with absolute or relative timeouts is split into separate functions.
This allows for removing a few cases of code duplication in pthreads code,
which uses absolute timeouts; also, it allows us to put platform-specific
code to go from an absolute to a relative timeout into the platform-specific
futex abstractions..

Futex operations that can be canceled are also split out into separate
functions suffixed by "_cancelable".

There are separate versions for both Linux and NaCl; while they currently
differ only slightly, my expectation is that the separate versions of
lowlevellock-futex.h will eventually be merged into futex-internal.h
when we get to move the lll_ functions over to the new futex API.
2015-07-10 13:47:09 +02:00
..
Banner
ChangeLog.old
DESIGN-barrier.txt
DESIGN-condvar.txt
DESIGN-rwlock.txt
DESIGN-systemtap-probes.txt Remove documentation of lowlevellock systemtap probes. 2015-06-30 17:05:44 +02:00
Makefile The patch committed to fix bug #18435 caused regressions on aarch64 2015-07-09 19:27:06 -04:00
TODO
TODO-kernel
TODO-testing
Versions Fix mq_notify pthread_barrier_* namespace (bug 18544). 2015-06-17 20:16:56 +00:00
alloca_cutoff.c
allocatestack.c Add and use new glibc-internal futex API. 2015-07-10 13:47:09 +02:00
cancellation.c Add and use new glibc-internal futex API. 2015-07-10 13:47:09 +02:00
check-cpuset.h NPTL: Refactor cpu_set_t validation to be sysdeps-controlled 2015-01-08 10:49:40 -08:00
cleanup.c
cleanup_compat.c
cleanup_defer.c
cleanup_defer_compat.c
cleanup_routine.c
cond-perf.c
createthread.c
default-sched.h
descr.h NPTL: Use unsigned type for setxid_futex. 2015-06-24 18:09:32 -07:00
eintr.c
elision-conf.h
errno-loc.c
events.c
forward.c
herrno.c Fix h_errno namespace (bug 18520). 2015-06-12 10:10:18 +00:00
libc-cancellation.c
libc-cleanup.c
libc-lowlevellock.c
libc_multiple_threads.c
libc_pthread_init.c
lll_timedlock_wait.c Split timed-wait functions out of nptl/lowlevellock.c. 2015-05-26 14:49:13 -07:00
lll_timedwait_tid.c Split timed-wait functions out of nptl/lowlevellock.c. 2015-05-26 14:49:13 -07:00
lowlevelbarrier.sym
lowlevelcond.sym
lowlevellock.c Split timed-wait functions out of nptl/lowlevellock.c. 2015-05-26 14:49:13 -07:00
lowlevelrobustlock.c
lowlevelrobustlock.sym
lowlevelrwlock.sym
nptl-init.c Add and use new glibc-internal futex API. 2015-07-10 13:47:09 +02:00
old_pthread_atfork.c
old_pthread_cond_broadcast.c
old_pthread_cond_destroy.c
old_pthread_cond_init.c
old_pthread_cond_signal.c
old_pthread_cond_timedwait.c
old_pthread_cond_wait.c
perf.c
pt-allocrtsig.c
pt-cleanup.c
pt-crti.S
pt-fork.c Clean up NPTL fork to be compat-only. 2015-02-06 10:53:07 -08:00
pt-interp.c nptl: restore .interp section in libpthread.so 2015-06-10 10:18:12 +00:00
pt-longjmp.c Clean up NPTL longjmp to be compat-only. 2015-02-06 10:53:27 -08:00
pt-raise.c
pt-system.c Clean up NPTL system to be compat-only. 2015-02-06 10:53:38 -08:00
pt-vfork.c
pthread-errnos.sym
pthread-pi-defines.sym
pthread-pids.h NaCl: Set tid field to a unique value. 2015-05-20 14:52:05 -07:00
pthreadP.h The patch committed to fix bug #18435 caused regressions on aarch64 2015-07-09 19:27:06 -04:00
pthread_atfork.c
pthread_attr_destroy.c
pthread_attr_getaffinity.c
pthread_attr_getdetachstate.c
pthread_attr_getguardsize.c
pthread_attr_getinheritsched.c
pthread_attr_getschedparam.c
pthread_attr_getschedpolicy.c
pthread_attr_getscope.c
pthread_attr_getstack.c
pthread_attr_getstackaddr.c
pthread_attr_getstacksize.c
pthread_attr_init.c
pthread_attr_setaffinity.c NPTL: Refactor cpu_set_t validation to be sysdeps-controlled 2015-01-08 10:49:40 -08:00
pthread_attr_setdetachstate.c
pthread_attr_setguardsize.c
pthread_attr_setinheritsched.c
pthread_attr_setschedparam.c
pthread_attr_setschedpolicy.c
pthread_attr_setscope.c
pthread_attr_setstack.c
pthread_attr_setstackaddr.c
pthread_attr_setstacksize.c
pthread_barrier_destroy.c
pthread_barrier_init.c Add and use new glibc-internal futex API. 2015-07-10 13:47:09 +02:00
pthread_barrier_wait.c Add and use new glibc-internal futex API. 2015-07-10 13:47:09 +02:00
pthread_barrierattr_destroy.c
pthread_barrierattr_getpshared.c
pthread_barrierattr_init.c
pthread_barrierattr_setpshared.c Add and use new glibc-internal futex API. 2015-07-10 13:47:09 +02:00
pthread_cancel.c Function declaration cleanup 2015-01-06 08:23:58 -08:00
pthread_clock_gettime.c
pthread_clock_settime.c
pthread_cond_broadcast.c
pthread_cond_destroy.c
pthread_cond_init.c
pthread_cond_signal.c
pthread_cond_timedwait.c libc-vdso.h place consolidation 2015-04-20 08:51:17 -03:00
pthread_cond_wait.c Function declaration cleanup 2015-01-06 08:23:58 -08:00
pthread_condattr_destroy.c
pthread_condattr_getclock.c
pthread_condattr_getpshared.c
pthread_condattr_init.c
pthread_condattr_setclock.c
pthread_condattr_setpshared.c Add and use new glibc-internal futex API. 2015-07-10 13:47:09 +02:00
pthread_create.c Add and use new glibc-internal futex API. 2015-07-10 13:47:09 +02:00
pthread_detach.c
pthread_equal.c
pthread_exit.c Function declaration cleanup 2015-01-06 08:23:58 -08:00
pthread_getaffinity.c
pthread_getattr_default_np.c
pthread_getattr_np.c
pthread_getconcurrency.c
pthread_getcpuclockid.c
pthread_getname.c
pthread_getschedparam.c
pthread_getspecific.c
pthread_join.c Function declaration cleanup 2015-01-06 08:23:58 -08:00
pthread_key_create.c pthread_key_create: Fix typo in comment 2015-06-11 11:48:22 +02:00
pthread_key_delete.c
pthread_kill.c
pthread_kill_other_threads.c
pthread_mutex_cond_lock.c
pthread_mutex_consistent.c
pthread_mutex_destroy.c
pthread_mutex_getprioceiling.c
pthread_mutex_init.c
pthread_mutex_lock.c Clean up BUSY_WAIT_NOP and atomic_delay. 2015-06-30 15:57:15 +02:00
pthread_mutex_setprioceiling.c
pthread_mutex_timedlock.c Clean up BUSY_WAIT_NOP and atomic_delay. 2015-06-30 15:57:15 +02:00
pthread_mutex_trylock.c
pthread_mutex_unlock.c
pthread_mutexattr_destroy.c
pthread_mutexattr_getprioceiling.c
pthread_mutexattr_getprotocol.c
pthread_mutexattr_getpshared.c
pthread_mutexattr_getrobust.c
pthread_mutexattr_gettype.c Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) 2015-02-12 09:26:00 +01:00
pthread_mutexattr_init.c
pthread_mutexattr_setprioceiling.c
pthread_mutexattr_setprotocol.c
pthread_mutexattr_setpshared.c Add and use new glibc-internal futex API. 2015-07-10 13:47:09 +02:00
pthread_mutexattr_setrobust.c
pthread_mutexattr_settype.c
pthread_once.c Add and use new glibc-internal futex API. 2015-07-10 13:47:09 +02:00
pthread_rwlock_destroy.c
pthread_rwlock_init.c Add and use new glibc-internal futex API. 2015-07-10 13:47:09 +02:00
pthread_rwlock_rdlock.c Add and use new glibc-internal futex API. 2015-07-10 13:47:09 +02:00
pthread_rwlock_timedrdlock.c Add and use new glibc-internal futex API. 2015-07-10 13:47:09 +02:00
pthread_rwlock_timedwrlock.c Add and use new glibc-internal futex API. 2015-07-10 13:47:09 +02:00
pthread_rwlock_tryrdlock.c Add and use new glibc-internal futex API. 2015-07-10 13:47:09 +02:00
pthread_rwlock_trywrlock.c
pthread_rwlock_unlock.c Add and use new glibc-internal futex API. 2015-07-10 13:47:09 +02:00
pthread_rwlock_wrlock.c Add and use new glibc-internal futex API. 2015-07-10 13:47:09 +02:00
pthread_rwlockattr_destroy.c
pthread_rwlockattr_getkind_np.c
pthread_rwlockattr_getpshared.c
pthread_rwlockattr_init.c
pthread_rwlockattr_setkind_np.c
pthread_rwlockattr_setpshared.c Add and use new glibc-internal futex API. 2015-07-10 13:47:09 +02:00
pthread_self.c
pthread_setaffinity.c
pthread_setattr_default_np.c NPTL: Refactor cpu_set_t validation to be sysdeps-controlled 2015-01-08 10:49:40 -08:00
pthread_setcancelstate.c
pthread_setcanceltype.c
pthread_setconcurrency.c
pthread_setegid.c
pthread_seteuid.c
pthread_setgid.c
pthread_setname.c
pthread_setregid.c
pthread_setresgid.c
pthread_setresuid.c
pthread_setreuid.c
pthread_setschedparam.c
pthread_setschedprio.c
pthread_setspecific.c
pthread_setuid.c
pthread_sigmask.c NPTL: Fix generic pthread_sigmask. 2015-01-08 14:26:51 -08:00
pthread_sigqueue.c
pthread_spin_destroy.c
pthread_spin_init.c
pthread_spin_lock.c
pthread_spin_trylock.c
pthread_spin_unlock.c
pthread_testcancel.c
pthread_timedjoin.c Function declaration cleanup 2015-01-06 08:23:58 -08:00
pthread_tryjoin.c
pthread_yield.c
register-atfork.c
res.c
sem_close.c Fix sem_* tdelete, tfind, tsearch, twalk namespace (bug 18536). 2015-06-17 20:11:58 +00:00
sem_destroy.c
sem_getvalue.c Fix semaphore destruction (bug 12674). 2015-01-21 00:46:16 -05:00
sem_init.c Add and use new glibc-internal futex API. 2015-07-10 13:47:09 +02:00
sem_open.c Add and use new glibc-internal futex API. 2015-07-10 13:47:09 +02:00
sem_post.c Add and use new glibc-internal futex API. 2015-07-10 13:47:09 +02:00
sem_timedwait.c Fix semaphore destruction (bug 12674). 2015-01-21 00:46:16 -05:00
sem_unlink.c
sem_wait.c Add and use new glibc-internal futex API. 2015-07-10 13:47:09 +02:00
sem_waitcommon.c Add and use new glibc-internal futex API. 2015-07-10 13:47:09 +02:00
semaphoreP.h
shlib-versions
sigaction.c
smp.h
sockperf.c
stack-aliasing.h
tpp.c
tst-_res1.c
tst-_res1mod1.c
tst-_res1mod2.c
tst-abstime.c
tst-align.c
tst-align3.c
tst-atfork1.c
tst-atfork2.c
tst-atfork2mod.c
tst-attr1.c
tst-attr2.c
tst-attr3.c
tst-backtrace1.c
tst-bad-schedattr.c
tst-barrier1.c
tst-barrier2.c
tst-barrier3.c
tst-barrier4.c
tst-basic1.c
tst-basic2.c
tst-basic3.c
tst-basic4.c
tst-basic5.c
tst-basic6.c
tst-basic7.c
tst-cancel-self-cancelstate.c
tst-cancel-self-canceltype.c
tst-cancel-self-cleanup.c
tst-cancel-self-testcancel.c
tst-cancel-self.c
tst-cancel-wrappers.sh
tst-cancel1.c
tst-cancel2.c
tst-cancel3.c
tst-cancel4.c Conditionalize some test code for SIGRTMIN, SA_SIGINFO. 2015-03-04 15:14:56 -08:00
tst-cancel5.c
tst-cancel6.c
tst-cancel7.c
tst-cancel8.c
tst-cancel9.c
tst-cancel10.c
tst-cancel11.c
tst-cancel12.c
tst-cancel13.c
tst-cancel14.c
tst-cancel15.c
tst-cancel16.c
tst-cancel17.c
tst-cancel18.c
tst-cancel19.c
tst-cancel20.c Conditionalize some tests' use of SA_SIGINFO. 2015-02-06 12:29:50 -08:00
tst-cancel21-static.c
tst-cancel21.c Conditionalize some tests' use of SA_SIGINFO. 2015-02-06 12:29:50 -08:00
tst-cancel22.c
tst-cancel23.c
tst-cancel24-static.cc
tst-cancel24.cc
tst-cancel25.c NPTL: Conditionalize some sanity tests for SIGCANCEL/SIGSETXID. 2015-02-06 12:31:11 -08:00
tst-cancelx1.c
tst-cancelx2.c
tst-cancelx3.c
tst-cancelx4.c
tst-cancelx5.c
tst-cancelx6.c
tst-cancelx7.c
tst-cancelx8.c
tst-cancelx9.c
tst-cancelx10.c
tst-cancelx11.c
tst-cancelx12.c
tst-cancelx13.c
tst-cancelx14.c
tst-cancelx15.c
tst-cancelx16.c
tst-cancelx17.c
tst-cancelx18.c
tst-cancelx20.c
tst-cancelx21.c
tst-cleanup0.c
tst-cleanup0.expect
tst-cleanup1.c
tst-cleanup2.c Use signal rather than sigaction in nptl/tst-cleanup2. 2015-02-06 12:30:05 -08:00
tst-cleanup3.c
tst-cleanup4.c
tst-cleanup4aux.c
tst-cleanupx0.c
tst-cleanupx0.expect
tst-cleanupx1.c
tst-cleanupx2.c
tst-cleanupx3.c
tst-cleanupx4.c
tst-clock1.c
tst-clock2.c
tst-cond-except.c
tst-cond1.c
tst-cond2.c
tst-cond3.c
tst-cond4.c
tst-cond5.c
tst-cond6.c
tst-cond7.c
tst-cond8-static.c
tst-cond8.c
tst-cond9.c
tst-cond10.c
tst-cond11.c
tst-cond12.c
tst-cond13.c
tst-cond14.c
tst-cond15.c
tst-cond16.c
tst-cond17.c
tst-cond18.c
tst-cond19.c
tst-cond20.c
tst-cond21.c
tst-cond22.c
tst-cond23.c
tst-cond24.c
tst-cond25.c Make error checking effective in nptl/tst-cond25.c. 2015-02-16 18:11:14 +01:00
tst-context1.c
tst-default-attr.c
tst-detach1.c
tst-dlsym1.c
tst-eintr1.c
tst-eintr2.c
tst-eintr3.c
tst-eintr4.c
tst-eintr5.c
tst-exec1.c
tst-exec2.c
tst-exec3.c
tst-exec4.c
tst-execstack-mod.c
tst-execstack.c
tst-exit1.c
tst-exit2.c
tst-exit3.c
tst-fini1.c
tst-fini1mod.c
tst-flock1.c
tst-flock2.c
tst-fork1.c
tst-fork2.c
tst-fork3.c
tst-fork4.c
tst-getpid3.c
tst-initializers1-c89.c
tst-initializers1-c99.c
tst-initializers1-gnu89.c
tst-initializers1-gnu99.c
tst-initializers1.c Ensure `wint_t' is defined before use in include/stdio.h 2015-05-18 12:28:06 +05:30
tst-join1.c
tst-join2.c
tst-join3.c
tst-join4.c
tst-join5.c Clean up nptl/tst-join5 use of nanosleep. 2015-02-06 12:21:38 -08:00
tst-join6.c
tst-key1.c
tst-key2.c
tst-key3.c
tst-key4.c
tst-kill1.c
tst-kill2.c
tst-kill3.c
tst-kill4.c
tst-kill5.c Fix nptl/tst-kill5 not to presume SIGRTMAX exists. 2015-02-06 12:22:23 -08:00
tst-kill6.c
tst-locale1.c Conditionalize use of SIGRTMIN in nptl/tst-locale1.c. 2015-02-06 12:30:58 -08:00
tst-locale2.c
tst-mutex1.c
tst-mutex2.c
tst-mutex3.c
tst-mutex4.c
tst-mutex5.c
tst-mutex5a.c
tst-mutex6.c
tst-mutex7.c
tst-mutex7a.c
tst-mutex8-static.c
tst-mutex8.c
tst-mutex9.c
tst-mutexpi1.c
tst-mutexpi2.c
tst-mutexpi3.c
tst-mutexpi4.c
tst-mutexpi5.c
tst-mutexpi5a.c
tst-mutexpi6.c
tst-mutexpi7.c
tst-mutexpi7a.c
tst-mutexpi8-static.c
tst-mutexpi8.c
tst-mutexpi9.c
tst-mutexpp1.c
tst-mutexpp6.c
tst-mutexpp10.c
tst-oddstacklimit.c
tst-once1.c
tst-once2.c
tst-once3.c
tst-once4.c
tst-once5.cc The C++ 2011 std::call_once function is specified to allow 2015-07-01 14:05:27 -06:00
tst-oncex3.c
tst-oncex4.c
tst-popen1.c
tst-pthread-attr-affinity.c
tst-pthread-getattr.c
tst-pthread-mutexattr.c Filter out PTHREAD_MUTEX_NO_ELISION_NP bit in pthread_mutexattr_gettype (BZ #15790) 2015-02-12 09:26:00 +01:00
tst-raise1.c
tst-robust1.c
tst-robust2.c
tst-robust3.c
tst-robust4.c
tst-robust5.c
tst-robust6.c
tst-robust7.c
tst-robust8.c
tst-robust9.c
tst-robustpi1.c
tst-robustpi2.c
tst-robustpi3.c
tst-robustpi4.c
tst-robustpi5.c
tst-robustpi6.c
tst-robustpi7.c
tst-robustpi8.c
tst-robustpi9.c
tst-rwlock1.c
tst-rwlock2.c
tst-rwlock2a.c
tst-rwlock3.c
tst-rwlock4.c
tst-rwlock5.c
tst-rwlock6.c
tst-rwlock7.c
tst-rwlock8.c
tst-rwlock9.c
tst-rwlock10.c
tst-rwlock11.c
tst-rwlock12.c
tst-rwlock13.c
tst-rwlock14.c
tst-rwlock15.c Fix lost wake-up when pthread_rwlock_timedrwlock times out. 2015-06-04 15:31:59 +02:00
tst-rwlock16.c Fix missing wake-ups in pthread_rwlock_rdlock. 2015-06-04 15:34:30 +02:00
tst-sched1.c
tst-sem1.c
tst-sem2.c
tst-sem3.c
tst-sem4.c
tst-sem5.c
tst-sem6.c
tst-sem7.c
tst-sem8.c
tst-sem9.c
tst-sem10.c
tst-sem11-static.c
tst-sem11.c Fix semaphore destruction (bug 12674). 2015-01-21 00:46:16 -05:00
tst-sem12-static.c
tst-sem12.c
tst-sem13.c Fix semaphore destruction (bug 12674). 2015-01-21 00:46:16 -05:00
tst-sem14.c
tst-sem15.c BZ#18434: Fix sem_post EOVERFLOW check for [!__HAVE_64B_ATOMICS]. 2015-05-19 15:04:41 -07:00
tst-setuid1-static.c
tst-setuid1.c
tst-setuid2.c
tst-setuid3.c
tst-signal1.c
tst-signal2.c
tst-signal3.c Conditionalize some test code for SIGRTMIN, SA_SIGINFO. 2015-03-04 15:14:56 -08:00
tst-signal4.c
tst-signal5.c
tst-signal6.c Conditionalize some test code for SIGRTMIN, SA_SIGINFO. 2015-03-04 15:14:56 -08:00
tst-signal7.c NPTL: Conditionalize some sanity tests for SIGCANCEL/SIGSETXID. 2015-02-06 12:31:11 -08:00
tst-spin1.c
tst-spin2.c
tst-spin3.c
tst-spin4.c
tst-stack1.c
tst-stack2.c
tst-stack3.c
tst-stack4.c
tst-stack4mod.c
tst-stackguard1-static.c
tst-stackguard1.c
tst-stdio1.c
tst-stdio2.c
tst-sysconf.c
tst-tls1.c
tst-tls2.c
tst-tls3.c
tst-tls3mod.c
tst-tls4.c
tst-tls4moda.c
tst-tls4modb.c
tst-tls5.c
tst-tls5.h
tst-tls5mod.c
tst-tls5moda.c
tst-tls5modb.c
tst-tls5modc.c
tst-tls5modd.c
tst-tls5mode.c
tst-tls5modf.c
tst-tls6.sh
tst-tpp.h
tst-tsd1.c
tst-tsd2.c
tst-tsd3.c
tst-tsd4.c
tst-tsd5.c
tst-tsd6.c
tst-typesizes.c
tst-umask1.c
tst-unload.c
tst-vfork1.c
tst-vfork1x.c
tst-vfork2.c
tst-vfork2x.c
unregister-atfork.c Add and use new glibc-internal futex API. 2015-07-10 13:47:09 +02:00
unwind.c
unwindbuf.sym
vars.c
version.c