#
cdce479a |
| 31-Jan-2014 |
christos <christos@NetBSD.org> |
remove compatibility code for handling CLOCK_MONOTONIC and handle it in the syscall directly.
|
#
de79b493 |
| 31-Jan-2014 |
christos <christos@NetBSD.org> |
PR/44756: Sad Clouds: Prevent leakage of errno = ESRCH from _lwp_park. This has two parts: - in pthread_cond_timedwait() if the thread we are trying to unpark exited, retry the the _lwp_park call
PR/44756: Sad Clouds: Prevent leakage of errno = ESRCH from _lwp_park. This has two parts: - in pthread_cond_timedwait() if the thread we are trying to unpark exited, retry the the _lwp_park call without it. - pthread_mutex() was affecting errno since it is calling _lwp_park() from pthread_mutex_lock_slow(). preserve the original errno. Note that the example problem still causes an occassional deadlock on machines with many CPUs and it is the same deadlock we observe with named.
show more ...
|
#
71d484f9 |
| 21-Mar-2013 |
christos <christos@NetBSD.org> |
- Allow libpthread to be dlopened again, by providing libc stubs to libpthread. - Fail if the dlopened libpthread does pthread_create(). From manu@ - Discussed at length in the mailing lists; approve
- Allow libpthread to be dlopened again, by providing libc stubs to libpthread. - Fail if the dlopened libpthread does pthread_create(). From manu@ - Discussed at length in the mailing lists; approved by core@ - This was chosen as the least intrusive patch that will provide the necessary functionality. XXX: pullup to 6
show more ...
|
#
a74bc621 |
| 06-Mar-2013 |
yamt <yamt@NetBSD.org> |
add comments whitespace
|
#
2f1e74f8 |
| 16-Aug-2012 |
matt <matt@NetBSD.org> |
Add a pthread__smt_wake and add support for it on arm along with pthread__smt_pause. These are implemented using the ARM instructions SEV (wake) and WFE (pause). These are treated as NOPs on ARM CP
Add a pthread__smt_wake and add support for it on arm along with pthread__smt_pause. These are implemented using the ARM instructions SEV (wake) and WFE (pause). These are treated as NOPs on ARM CPUs that don't support them.
show more ...
|
#
e865ac28 |
| 13-Mar-2012 |
joerg <joerg@NetBSD.org> |
Move the pthread_once alias where it belongs.
|
#
77bfe129 |
| 12-Mar-2012 |
joerg <joerg@NetBSD.org> |
Move pthread_once implementation into a separate file, it doesn't depend on the mutex implementation in any way.
|
#
2b0c4dcf |
| 02-Aug-2008 |
matt <matt@NetBSD.org> |
Change pthread_mutex_t to use the amount of space as and be congruent to the version used in the SA version of pthreads. This preserves binary compatibility between both versions of the library.
|
#
2bcb8bf1 |
| 25-May-2008 |
ad <ad@NetBSD.org> |
PR lib/38741 priority inversion in libpthread breaks apps that use SCHED_FIFO threads
- Change condvar sync so that we never take the condvar's spinlock without first holding the caller-provided m
PR lib/38741 priority inversion in libpthread breaks apps that use SCHED_FIFO threads
- Change condvar sync so that we never take the condvar's spinlock without first holding the caller-provided mutex. Previously, the spinlock was only taken without the mutex in an error path, but it was enough to trigger the problem described in the PR.
- Even with this change, applications calling pthread_cond_signal/broadcast without holding the interlocking mutex are still subject to the problem described in the PR. POSIX discourages this saying that it leads to undefined scheduling behaviour, which seems good enough for the time being.
- Elsewhere, use a hash of mutexes instead of per-object spinlocks to synchronize entry/exit from sleep queues.
- Simplify how sleep queues are maintained.
show more ...
|
#
d5afa113 |
| 25-May-2008 |
ad <ad@NetBSD.org> |
Add some general comments about the mutex implementation.
|
#
ce099b40 |
| 28-Apr-2008 |
martin <martin@NetBSD.org> |
Remove clause 3 and 4 from TNF licenses
|
#
8548e338 |
| 07-Mar-2008 |
ad <ad@NetBSD.org> |
pthread__mutex_lock_slow:
- don't stop spinning if there are already waiters on the mutex, there is no point. - cosmetic change.
|
#
68692162 |
| 23-Feb-2008 |
ad <ad@NetBSD.org> |
Fix pthread_mutex_trylock() for recursive mutexes. PR lib/38087. Based on a patch provided by rafal@.
|
#
377f098a |
| 14-Feb-2008 |
ad <ad@NetBSD.org> |
Adjust mutex/rwlock definitions to match reality now that there is only one implementation of each. PR lib/38030.
|
#
a67e1e34 |
| 10-Feb-2008 |
ad <ad@NetBSD.org> |
- Remove libpthread's atomic ops. - Remove the old spinlock-based mutex and rwlock implementations. - Use the atomic ops from libc.
|
#
2e86943d |
| 25-Jan-2008 |
rafal <rafal@NetBSD.org> |
Make this compile after Andrew's fix (remove now-unused variables)
|
#
bba57253 |
| 25-Jan-2008 |
ad <ad@NetBSD.org> |
pthread_mutex_lock_slow: remove "deliberate deadlock" code that's not needed with 1:1. PR lib/37524.
|
#
c6409540 |
| 08-Jan-2008 |
christos <christos@NetBSD.org> |
add missing static decls.
|
#
b43749fd |
| 05-Jan-2008 |
ad <ad@NetBSD.org> |
machine/lock.h, not sys/lock.h
|
#
989565f8 |
| 24-Dec-2007 |
ad <ad@NetBSD.org> |
- Fix pthread_rwlock_trywrlock() which was broken.
- Add new functions: pthread_mutex_held_np, mutex_owner_np, rwlock_held_np, rwlock_wrheld_np, rwlock_rdheld_np. These match the kernel's locking
- Fix pthread_rwlock_trywrlock() which was broken.
- Add new functions: pthread_mutex_held_np, mutex_owner_np, rwlock_held_np, rwlock_wrheld_np, rwlock_rdheld_np. These match the kernel's locking primitives and can be used when porting kernel code to userspace.
- Always create LWPs detached. Do join/exit sync mostly in userland. When looped on a dual core box this seems ~30% quicker than using lwp_wait(). Reduce number of lock acquire/release ops during thread exit.
show more ...
|
#
8077340e |
| 19-Nov-2007 |
ad <ad@NetBSD.org> |
Remove the debuglog stuff. ktrace is more useful now.
|
#
15e9cec1 |
| 13-Nov-2007 |
ad <ad@NetBSD.org> |
For PR bin/37347:
- Override __libc_thr_init() instead of using our own constructor. - Add pthread__getenv() and use instead of getenv(). This is used before we are up and running and unfortunatle
For PR bin/37347:
- Override __libc_thr_init() instead of using our own constructor. - Add pthread__getenv() and use instead of getenv(). This is used before we are up and running and unfortunatley getenv() takes locks.
Other changes:
- Cache the spinlock vectors in pthread__st. Internal spinlock operations now take 1 function call instead of 3 (i386). - Use pthread__self() internally, not pthread_self(). - Use __attribute__ ((visibility("hidden"))) in some places. - Kill PTHREAD_MAIN_DEBUG.
show more ...
|
#
20e3392e |
| 13-Sep-2007 |
ad <ad@NetBSD.org> |
Add a per-mutex deferred wakeup flag so that threads doing something like the following do not wake other threads early:
pthread_mutex_lock(&mutex); pthread_cond_broadcast(&cond); foo = malloc(10
Add a per-mutex deferred wakeup flag so that threads doing something like the following do not wake other threads early:
pthread_mutex_lock(&mutex); pthread_cond_broadcast(&cond); foo = malloc(100); /* takes libc mutexes */ pthread_mutex_unlock(&mutex);
show more ...
|
#
baebee83 |
| 11-Sep-2007 |
ad <ad@NetBSD.org> |
Fix inverted test after merge of nick-csl-alignment.
|
#
9fdaf800 |
| 10-Sep-2007 |
skrll <skrll@NetBSD.org> |
Merge nick-csl-alignment.
|