musl/src/thread
Rich Felker 5db951ef80 in pthread_getattr_np, use mremap rather than madvise to measure stack
the original motivation for this patch was that qemu (and possibly
other syscall emulators) nop out madvise, resulting in an infinite
loop. however, there is another benefit to this change: madvise may
actually undo an explicit madvise the application intended for its
stack, whereas the mremap operation is a true nop. the logic here is
that mremap must fail if it cannot resize the mapping in-place, and
the caller knows that it cannot resize in-place because it knows the
next page of virtual memory is already occupied.
2013-07-31 15:19:39 -04:00
..
arm add support for TLS variant I, presently needed for arm and mips 2012-10-15 18:51:53 -04:00
i386 beginnings of full TLS support in shared libraries 2012-10-04 21:01:56 -04:00
microblaze fix order of syscall args for microblaze clone syscall 2012-10-19 00:27:03 -04:00
mips update mips cancellation-point syscall asm with 7-arg and r25 fixes 2012-09-15 02:24:12 -04:00
powerpc powerpc: handle syscall error in clone. 2012-11-19 16:58:09 +01:00
x86_64 fix some indention-with-spaces that crept in 2012-09-29 01:14:07 -04:00
__futex.c global cleanup to use the new syscall interface 2011-03-20 00:16:43 -04:00
__lock.c ditch the priority inheritance locks; use malloc's version of lock 2012-04-24 16:32:23 -04:00
__set_thread_area.c generic c version of __set_thread_area for archs where it works 2012-07-11 11:34:46 -04:00
__timedwait.c simplify unified timed wait code, drop support for newer method 2011-08-07 11:14:32 -04:00
__unmapself.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
__wait.c reduce some ridiculously large spin counts 2011-05-06 21:45:48 -04:00
cancel_dummy.c use weak aliases rather than function pointers to simplify some code 2011-08-06 20:09:51 -04:00
cancel_impl.c remove leftover cp_sp cruft from cancellation code, fix small bug 2012-05-25 00:35:09 -04:00
cancellation.c simplify cancellation push/pop slightly 2012-05-23 14:13:54 -04:00
clone.c overhaul clone syscall wrapping 2011-09-18 10:14:37 -04:00
lock_ptc.c support for TLS in dynamic-loaded (dlopen) modules 2012-10-05 11:51:50 -04:00
pthread_atfork.c ditch the priority inheritance locks; use malloc's version of lock 2012-04-24 16:32:23 -04:00
pthread_attr_destroy.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
pthread_attr_get.c make pthread attribute types structs, even when they just have one field 2013-07-22 13:57:02 -04:00
pthread_attr_init.c clean up sloppy nested inclusion from pthread_impl.h 2012-11-08 17:04:20 -05:00
pthread_attr_setdetachstate.c reject invalid attribute settings 2011-03-07 15:46:37 -05:00
pthread_attr_setguardsize.c reorganize pthread data structures and move the definitions to alltypes.h 2011-02-17 17:16:20 -05:00
pthread_attr_setinheritsched.c add support for thread scheduling (POSIX TPS option) 2012-11-11 15:38:04 -05:00
pthread_attr_setschedparam.c add support for thread scheduling (POSIX TPS option) 2012-11-11 15:38:04 -05:00
pthread_attr_setschedpolicy.c add support for thread scheduling (POSIX TPS option) 2012-11-11 15:38:04 -05:00
pthread_attr_setscope.c add support for thread scheduling (POSIX TPS option) 2012-11-11 15:38:04 -05:00
pthread_attr_setstack.c pthread stack treatment overhaul for application-provided stacks, etc. 2013-02-01 22:10:40 -05:00
pthread_attr_setstacksize.c pthread stack treatment overhaul for application-provided stacks, etc. 2013-02-01 22:10:40 -05:00
pthread_barrier_destroy.c next step making barrier self-sync'd destruction safe 2011-09-28 18:00:02 -04:00
pthread_barrier_init.c make pthread attribute types structs, even when they just have one field 2013-07-22 13:57:02 -04:00
pthread_barrier_wait.c fix extremely rare but dangerous race condition in robust mutexes 2012-08-17 17:13:53 -04:00
pthread_barrierattr_destroy.c implement barrier attribute functions (essentially no-ops) 2011-03-07 15:42:52 -05:00
pthread_barrierattr_init.c clean up sloppy nested inclusion from pthread_impl.h 2012-11-08 17:04:20 -05:00
pthread_barrierattr_setpshared.c make pthread attribute types structs, even when they just have one field 2013-07-22 13:57:02 -04:00
pthread_cond_broadcast.c another cond var fix: requeue count race condition 2011-09-26 13:14:41 -04:00
pthread_cond_destroy.c synchronize cond var destruction with exiting waits 2011-10-02 22:58:28 -04:00
pthread_cond_init.c make pthread attribute types structs, even when they just have one field 2013-07-22 13:57:02 -04:00
pthread_cond_signal.c redo cond vars again, use sequence numbers 2011-09-26 00:25:13 -04:00
pthread_cond_timedwait.c use restrict everywhere it's required by c99 and/or posix 2008 2012-09-06 22:44:55 -04:00
pthread_cond_wait.c use restrict everywhere it's required by c99 and/or posix 2008 2012-09-06 22:44:55 -04:00
pthread_condattr_destroy.c implement pthread_condattr_* interfaces 2011-03-07 16:20:12 -05:00
pthread_condattr_init.c clean up sloppy nested inclusion from pthread_impl.h 2012-11-08 17:04:20 -05:00
pthread_condattr_setclock.c make pthread attribute types structs, even when they just have one field 2013-07-22 13:57:02 -04:00
pthread_condattr_setpshared.c make pthread attribute types structs, even when they just have one field 2013-07-22 13:57:02 -04:00
pthread_create.c transition to using functions for internal signal blocking/restoring 2013-04-26 19:48:01 -04:00
pthread_detach.c fix several locks that weren't updated right for new futex-based __lock 2012-07-12 11:23:43 -04:00
pthread_equal.c macro for pthread_equal 2011-08-14 15:17:36 -04:00
pthread_getattr_np.c in pthread_getattr_np, use mremap rather than madvise to measure stack 2013-07-31 15:19:39 -04:00
pthread_getconcurrency.c implement pthread_[sg]etconcurrency. 2011-05-30 11:31:07 -04:00
pthread_getcpuclockid.c support cputime clocks for processes/threads other than self 2013-06-08 11:36:41 -04:00
pthread_getschedparam.c fix syscall argument bug in pthread_getschedparam 2013-06-26 22:02:23 -04:00
pthread_getspecific.c optimize POSIX TSD for fast pthread_getspecific 2011-03-03 18:30:44 -05:00
pthread_join.c clean up sloppy nested inclusion from pthread_impl.h 2012-11-08 17:04:20 -05:00
pthread_key_create.c add proper fuxed-based locking for stdio 2011-07-30 08:02:14 -04:00
pthread_kill.c fix several locks that weren't updated right for new futex-based __lock 2012-07-12 11:23:43 -04:00
pthread_mutex_consistent.c implement robust mutexes 2011-03-17 20:41:37 -04:00
pthread_mutex_destroy.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
pthread_mutex_getprioceiling.c add stub versions of some missing optional pthread interfaces 2012-11-17 18:42:16 -05:00
pthread_mutex_init.c make pthread attribute types structs, even when they just have one field 2013-07-22 13:57:02 -04:00
pthread_mutex_lock.c add fast path for normal mutexes back to pthread_mutex_lock 2011-08-07 04:50:02 -04:00
pthread_mutex_setprioceiling.c add stub versions of some missing optional pthread interfaces 2012-11-17 18:42:16 -05:00
pthread_mutex_timedlock.c use restrict everywhere it's required by c99 and/or posix 2008 2012-09-06 22:44:55 -04:00
pthread_mutex_trylock.c recovering ownerdead robust mutex must reset recursive lock count 2011-10-03 00:27:47 -04:00
pthread_mutex_unlock.c fix extremely rare but dangerous race condition in robust mutexes 2012-08-17 17:13:53 -04:00
pthread_mutexattr_destroy.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
pthread_mutexattr_init.c clean up sloppy nested inclusion from pthread_impl.h 2012-11-08 17:04:20 -05:00
pthread_mutexattr_setprotocol.c add stub versions of some missing optional pthread interfaces 2012-11-17 18:42:16 -05:00
pthread_mutexattr_setpshared.c make pthread attribute types structs, even when they just have one field 2013-07-22 13:57:02 -04:00
pthread_mutexattr_setrobust.c make pthread attribute types structs, even when they just have one field 2013-07-22 13:57:02 -04:00
pthread_mutexattr_settype.c make pthread attribute types structs, even when they just have one field 2013-07-22 13:57:02 -04:00
pthread_once.c fix major breakage in pthread_once (it was always deadlocking) 2011-03-08 12:08:40 -05:00
pthread_rwlock_destroy.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
pthread_rwlock_init.c clean up sloppy nested inclusion from pthread_impl.h 2012-11-08 17:04:20 -05:00
pthread_rwlock_rdlock.c overhaul rwlocks to address several issues 2011-08-03 10:21:32 -04:00
pthread_rwlock_timedrdlock.c use restrict everywhere it's required by c99 and/or posix 2008 2012-09-06 22:44:55 -04:00
pthread_rwlock_timedwrlock.c use restrict everywhere it's required by c99 and/or posix 2008 2012-09-06 22:44:55 -04:00
pthread_rwlock_tryrdlock.c overhaul rwlocks to address several issues 2011-08-03 10:21:32 -04:00
pthread_rwlock_trywrlock.c overhaul rwlocks to address several issues 2011-08-03 10:21:32 -04:00
pthread_rwlock_unlock.c fix failure-to-wake in rwlock unlock 2011-10-01 09:11:35 -04:00
pthread_rwlock_wrlock.c overhaul rwlocks to address several issues 2011-08-03 10:21:32 -04:00
pthread_rwlockattr_destroy.c implement pthread_rwlockattr_* (essentially no-ops) 2011-03-07 16:43:25 -05:00
pthread_rwlockattr_init.c clean up sloppy nested inclusion from pthread_impl.h 2012-11-08 17:04:20 -05:00
pthread_rwlockattr_setpshared.c make pthread attribute types structs, even when they just have one field 2013-07-22 13:57:02 -04:00
pthread_self.c ensure that thread dtv pointer is never null to optimize __tls_get_addr 2013-06-03 16:35:59 -04:00
pthread_setcancelstate.c fix minor bugs due to incorrect threaded-predicate semantics 2011-04-20 21:41:45 -04:00
pthread_setcanceltype.c handle pending cancellation when enabling async cancellation 2011-09-04 21:37:07 -04:00
pthread_setconcurrency.c implement pthread_[sg]etconcurrency. 2011-05-30 11:31:07 -04:00
pthread_setschedparam.c fix failure of pthread_setschedparam to pass correct param to kernel 2013-06-26 21:34:44 -04:00
pthread_setschedprio.c add support for thread scheduling (POSIX TPS option) 2012-11-11 15:38:04 -05:00
pthread_setspecific.c optimize POSIX TSD for fast pthread_getspecific 2011-03-03 18:30:44 -05:00
pthread_sigmask.c remove __SYSCALL_SSLEN arch macro in favor of using public _NSIG 2013-03-26 23:07:31 -04:00
pthread_spin_destroy.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
pthread_spin_init.c initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
pthread_spin_lock.c fix more instances of old a_xchg (use new a_swap name) 2011-09-16 14:33:51 -04:00
pthread_spin_trylock.c fix more instances of old a_xchg (use new a_swap name) 2011-09-16 14:33:51 -04:00
pthread_spin_unlock.c prepare pthread_spin_unlock for archs that need memory barriers 2011-03-24 23:06:48 -04:00
pthread_testcancel.c use weak aliases rather than function pointers to simplify some code 2011-08-06 20:09:51 -04:00
sem_destroy.c implement POSIX semaphores 2011-03-04 00:45:59 -05:00
sem_getvalue.c use restrict everywhere it's required by c99 and/or posix 2008 2012-09-06 22:44:55 -04:00
sem_init.c fix uninitialized waiters field in semaphores 2011-04-19 13:16:59 -04:00
sem_open.c fix temp file leak in sem_open on successful creation of new semaphore 2013-06-26 21:41:51 -04:00
sem_post.c report sem value overflows in sem_post 2011-10-26 00:28:47 -04:00
sem_timedwait.c use restrict everywhere it's required by c99 and/or posix 2008 2012-09-06 22:44:55 -04:00
sem_trywait.c retry on cas failures in sem_trywait 2012-07-24 00:51:36 -04:00
sem_unlink.c implement POSIX semaphores 2011-03-04 00:45:59 -05:00
sem_wait.c implement POSIX semaphores 2011-03-04 00:45:59 -05:00
synccall.c synccall signal handler need not handle dead threads anymore 2013-04-26 17:46:58 -04:00
syscall_cp.c overhaul pthread cancellation 2011-04-17 11:43:03 -04:00
tls.c beginnings of full TLS support in shared libraries 2012-10-04 21:01:56 -04:00
vmlock.c fix extremely rare but dangerous race condition in robust mutexes 2012-08-17 17:13:53 -04:00