History log of /netbsd-src/lib/libpthread/pthread_mutex.c (Results 26 – 50 of 82)
Revision Date Author Comments
# 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.


1234