History log of /freebsd-10-stable/lib/libkse/sys/lock.c
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

# 175864 31-Jan-2008 deischen

When reinitializing a lockuser, don't assume that the lock is in
use. If it is in use, use the watched request, otherwise use the
lockuser's own request. Only allocate a lockuser request if both
requests are null.

PR: 119920
Tested by (6.x): Landon Fuller <landonf -at- bikemonkey -dot- org>


# 174112 30-Nov-2007 deischen

WARNS=3'ify.


# 173967 27-Nov-2007 jasone

Add _pthread_mutex_init_calloc_cb() to libthr and libkse, so that malloc(3)
(part of libc) can use pthreads mutexes without causing infinite recursion
during initialization.


# 172491 09-Oct-2007 obrien

Repo copy libpthreads to libkse.
This introduces the WITHOUT_LIBKSE nob,
and changes WITHOUT_LIBPTHREADS to mean with neither threading libs.
Approved by: re(kensmith)


# 148542 29-Jul-2005 deischen

Catch up with the atomic_FOO_ptr() changes and silence a few warnings.


# 142670 27-Feb-2005 delphij

Change the spin lock logic to a reasonable one. We should spin when
the lock is held by other thread, but not when nobody owns it. According
to deischen@, this part of code will never be hit in our threads
library, since it does not use locks without wait/wakeup functions.

Spotted by: mingyanguo via ChinaUnix.net forum
Reviewed by: deischen


# 122074 04-Nov-2003 deischen

Add the ability to reinitialize libpthread's internal FIFO-queueing
locks.

Reviewed by: davidxu


# 120658 02-Oct-2003 davidxu

Only generate code for _LCK_ASSERT if _LCK_DEBUG is defined.


# 119723 03-Sep-2003 deischen

Don't assume sizeof(long) = sizeof(int) on x86; use int
instead of long types for low-level locks.

Add prototypes for some internal libc functions that are
wrapped by the library as cancellation points.

Add memory barriers to alpha atomic swap functions (submitted
by davidxu).

Requested by: bde


# 115278 24-May-2003 deischen

Change low-level locking a bit so that we can tell if
a lock is being waitied on.

Fix a races in join and cancellation.

When trying to wait on a CV and the library is not yet
threaded, make it threaded so that waiting actually works.

When trying to nanosleep() and we're not threaded, just
call the system call nanosleep instead of adding the thread
to the wait queue.

Clean up adding/removing new threads to the "all threads queue",
assigning them unique ids, and tracking how many active threads
there are. Do it all when the thread is added to the scheduling
queue instead of making pthread_create() know how to do it.

Fix a race where a thread could be marked for signal delivery
but it could be exited before we actually add the signal to it.

Other minor cleanups and bug fixes.

Submitted by: davidxu
Approved by: re@ (blanket for libpthread)


# 115080 16-May-2003 deischen

Add a method of yielding the current thread with the scheduler
lock held (_thr_sched_switch_unlocked()) and use this to avoid
dropping the scheduler lock and having the scheduler retake the
same lock again.

Add a better way of detecting if a low-level lock is in use.

When switching out a thread due to blocking in the UTS, don't
switch to the KSE's scheduler stack only to switch back to
another thread. If possible switch to the new thread directly
from the old thread and avoid the overhead of the extra
context switch.

Check for pending signals on a thread when entering the scheduler
and add them to the threads signal frame. This includes some
other minor signal fixes.

Most of this was a joint effor between davidxu and myself.

Reviewed by: davidxu
Approved by: re@ (blanket for libpthread)


# 114680 04-May-2003 deischen

Protect against a race between granting a lock and accessing
other parts of the lock.

Submitted by: davidxu


# 113661 18-Apr-2003 deischen

Sorry folks; I accidentally committed a patch from what I was working
on a couple of days ago. This should be the most recent changes.

Noticed by: davidxu


# 113657 18-Apr-2003 deischen

Add FIFO queueing locking operations based on atomic swap.

Modify thread errno for the new libpthread changes.

Reviewed by: davidxu