The NetBSD Project

CVS log for src/lib/libpthread/pthread_mutex.c

[BACK] Up to [cvs.NetBSD.org] / src / lib / libpthread

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.83: download - view: text, markup, annotated - select for diffs
Sun Apr 10 10:38:33 2022 UTC (2 years, 8 months ago) by riastradh
Branches: MAIN
CVS tags: perseant-exfatfs-base-20240630, perseant-exfatfs-base, perseant-exfatfs, netbsd-10-base, netbsd-10-0-RELEASE, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10, HEAD
Diff to: previous 1.82: preferred, colored
Changes since revision 1.82: +12 -12 lines
pthread: Nix trailing whitespace.

Revision 1.82: download - view: text, markup, annotated - select for diffs
Sat Feb 12 14:59:32 2022 UTC (2 years, 9 months ago) by riastradh
Branches: MAIN
Diff to: previous 1.81: preferred, colored
Changes since revision 1.81: +5 -2 lines
libpthread: Move namespacing include to top of .c files.

Stuff like libc's namespace.h, or atomic_op_namespace.h, which does
namespacing tricks like `#define atomic_cas_uint _atomic_cas_uint',
has to go at the top of each .c file.  If it goes in the middle, it
might be too late to affect the declarations, and result in compile
errors.

I tripped over this by including <sys/atomic.h> in mips
<machine/lock.h>.

(Maybe we should create a new pthread_namespace.h file for the
purpose, but this'll do for now.)

Revision 1.81: download - view: text, markup, annotated - select for diffs
Thu Jun 11 18:41:22 2020 UTC (4 years, 5 months ago) by ad
Branches: MAIN
CVS tags: cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x
Diff to: previous 1.80: preferred, colored
Changes since revision 1.80: +6 -3 lines
Adjust memory barriers.

Revision 1.80: download - view: text, markup, annotated - select for diffs
Wed Jun 10 22:45:15 2020 UTC (4 years, 6 months ago) by ad
Branches: MAIN
Diff to: previous 1.79: preferred, colored
Changes since revision 1.79: +96 -76 lines
- Make pthread_condvar and pthread_mutex work on the stack rather than in
  pthread_t, so there's less chance of bad things happening if someone calls
  (for example) pthread_cond_broadcast() from a signal handler.

- Remove all the deferred waiter handling except for the one case that really
  matters which is transferring waiters from condvar -> mutex on wakeup, and
  do that by splicing the condvar's waiters onto the mutex.

- Remove the mutex waiters bit as it's another complication that's not
  strictly needed.

Revision 1.79: download - view: text, markup, annotated - select for diffs
Wed Jun 3 22:10:24 2020 UTC (4 years, 6 months ago) by ad
Branches: MAIN
Diff to: previous 1.78: preferred, colored
Changes since revision 1.78: +15 -2 lines
Deal with a couple of problems with threads being awoken early due to
timeouts or cancellation where:

- The restarting thread calls _lwp_exit() before another thread gets around
  to waking it with _lwp_unpark(), leading to ESRCH (observed by joerg@).
  (I may have removed a similar check mistakenly over the weekend.)

- The restarting thread considers itself gone off the sleep queue but
  at the same time another thread is part way through waking it, and hasn't
  fully completed that operation yet by setting thread->pt_mutexwait = 0.
  I think that could have potentially lead to the list of waiters getting
  messed up given the right circumstances.

Revision 1.78: download - view: text, markup, annotated - select for diffs
Mon Jun 1 11:44:59 2020 UTC (4 years, 6 months ago) by ad
Branches: MAIN
Diff to: previous 1.77: preferred, colored
Changes since revision 1.77: +22 -32 lines
In the interests of reliability simplify waiter handling more and redo
condvars to manage the list of waiters with atomic ops.

Revision 1.77: download - view: text, markup, annotated - select for diffs
Sat May 16 22:53:37 2020 UTC (4 years, 6 months ago) by ad
Branches: MAIN
Diff to: previous 1.76: preferred, colored
Changes since revision 1.76: +119 -202 lines
- Try to eliminate a hang in "parked" I've been seeing while stress testing.
  Centralise wakeup of deferred waiters in pthread__clear_waiters() and use
  throughout libpthread.  Make fewer assumptions.  Be more conservative in
  pthread_mutex when dealing with pending waiters.

- Remove the "hint" argument everywhere since the kernel doesn't use it any
  more.

Revision 1.64.4.2: download - view: text, markup, annotated - select for diffs
Wed Apr 8 14:07:15 2020 UTC (4 years, 8 months ago) by martin
Branches: phil-wifi
Diff to: previous 1.64.4.1: preferred, colored; branchpoint 1.64: preferred, colored; next MAIN 1.65: preferred, colored
Changes since revision 1.64.4.1: +59 -68 lines
Merge changes from current as of 20200406

Revision 1.76: download - view: text, markup, annotated - select for diffs
Sun Feb 16 17:45:11 2020 UTC (4 years, 9 months ago) by kamil
Branches: MAIN
CVS tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, is-mlppp-base, is-mlppp
Diff to: previous 1.75: preferred, colored
Changes since revision 1.75: +4 -1 lines
Revert "Enhance the pthread(3) + malloc(3) init model"

It is reported to hand on aarch64 with gzip.

Revision 1.75: download - view: text, markup, annotated - select for diffs
Sat Feb 15 23:59:30 2020 UTC (4 years, 9 months ago) by kamil
Branches: MAIN
Diff to: previous 1.74: preferred, colored
Changes since revision 1.74: +3 -6 lines
Enhance the pthread(3) + malloc(3) init model

Separate the pthread_atfork(3) call from pthread_tsd_init()
and move it into a distinct function.

Call inside pthread__init() late TSD initialization route, just after
"pthread_atfork(NULL, NULL, pthread__fork_callback);".

Document that malloc(3) initialization is now controlled again and called
during the first pthread_atfork(3) call.

Remove #if 0 code from pthread_mutex.c as we no longer initialize malloc
prematurely.

Revision 1.74: download - view: text, markup, annotated - select for diffs
Sat Feb 1 18:14:16 2020 UTC (4 years, 10 months ago) by kamil
Branches: MAIN
Diff to: previous 1.73: preferred, colored
Changes since revision 1.73: +4 -1 lines
Revert previous

'git grep' breaks now.

Revision 1.73: download - view: text, markup, annotated - select for diffs
Sat Feb 1 15:39:56 2020 UTC (4 years, 10 months ago) by kamil
Branches: MAIN
Diff to: previous 1.72: preferred, colored
Changes since revision 1.72: +3 -6 lines
Remove 'ifdef 0' hacks

It is no longer needed as the proper fix avoiding premature malloc()
landed the sources.

Revision 1.72: download - view: text, markup, annotated - select for diffs
Fri Jan 31 17:52:14 2020 UTC (4 years, 10 months ago) by kamil
Branches: MAIN
Diff to: previous 1.71: preferred, colored
Changes since revision 1.71: +5 -2 lines
Refactor libpthread checks for invalid arguments

Switch from manual functions to pthread__error().

Revision 1.71: download - view: text, markup, annotated - select for diffs
Fri Jan 31 02:37:46 2020 UTC (4 years, 10 months ago) by christos
Branches: MAIN
Diff to: previous 1.70: preferred, colored
Changes since revision 1.70: +4 -2 lines
In the same spirit as the previous pthread_mutex_init change for jemalloc,
make pthread_mutexattr_init do always a full initialization, so that the
attribute that will be used later when we become threaded is properly
initialized.

Revision 1.70: download - view: text, markup, annotated - select for diffs
Wed Jan 29 21:11:24 2020 UTC (4 years, 10 months ago) by kamil
Branches: MAIN
Diff to: previous 1.69: preferred, colored
Changes since revision 1.69: +27 -8 lines
Use pthread_mutexattr_t and pthread_mutex_t magic fields

Validate _PT_MUTEX_MAGIC in pthread_mutex_t and _PT_MUTEXATTR_MAGIC
in pthread_mutexattr_t accordingly.

Revision 1.69: download - view: text, markup, annotated - select for diffs
Wed Jan 29 10:55:23 2020 UTC (4 years, 10 months ago) by kamil
Branches: MAIN
Diff to: previous 1.68: preferred, colored
Changes since revision 1.68: +4 -2 lines
Mark destroyed pthread_mutexattr_t as dead

Revision 1.65.2.1: download - view: text, markup, annotated - select for diffs
Sun Jan 26 10:55:16 2020 UTC (4 years, 10 months ago) by martin
Branches: netbsd-9
CVS tags: netbsd-9-4-RELEASE, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2
Diff to: previous 1.65: preferred, colored; next MAIN 1.66: preferred, colored
Changes since revision 1.65: +24 -52 lines
Pull up following revision(s) (requested by ad in ticket #647):

	lib/libpthread/pthread_rwlock.c: revision 1.37 (patch)
	lib/libpthread/pthread_misc.c: revision 1.16
	lib/libpthread/pthread.c: revision 1.154
	lib/libpthread/pthread_int.h: revision 1.98
	lib/libpthread/pthread_cond.c: revision 1.66
	lib/libpthread/pthread_mutex.c: revision 1.66

Rip out some very ambitious optimisations around pthread_mutex that are
don't buy much.  This stuff is hard enough to get right in the kernel let
alone userspace, and I don't trust that it's right.

Revision 1.68: download - view: text, markup, annotated - select for diffs
Sat Jan 25 18:30:41 2020 UTC (4 years, 10 months ago) by ad
Branches: MAIN
Diff to: previous 1.67: preferred, colored
Changes since revision 1.67: +3 -3 lines
Adjustment to previous: don't call _lwp_unpark_all() with nwaiters == 0.

Revision 1.67: download - view: text, markup, annotated - select for diffs
Sat Jan 25 17:58:28 2020 UTC (4 years, 10 months ago) by ad
Branches: MAIN
Diff to: previous 1.66: preferred, colored
Changes since revision 1.66: +4 -11 lines
pthread__mutex_unlock_slow(): ignore the DEFERRED bit.  It's only purpose
is to get the thread to go through the slow path.  If there are waiters,
process them there and then.  Should not affect well behaved apps.  Maybe
of help for:

PR bin/50350: rump/rumpkern/t_sp/stress_{long,short} fail on Core 2 Quad

Revision 1.66: download - view: text, markup, annotated - select for diffs
Mon Jan 13 18:22:56 2020 UTC (4 years, 10 months ago) by ad
Branches: MAIN
Diff to: previous 1.65: preferred, colored
Changes since revision 1.65: +24 -52 lines
Rip out some very ambitious optimisations around pthread_mutex that are
don't buy much.  This stuff is hard enough to get right in the kernel let
alone userspace, and I don't trust that it's right.

Revision 1.64.4.1: download - view: text, markup, annotated - select for diffs
Mon Jun 10 22:05:26 2019 UTC (5 years, 6 months ago) by christos
Branches: phil-wifi
Diff to: previous 1.64: preferred, colored
Changes since revision 1.64: +8 -2 lines
Sync with HEAD

Revision 1.65: download - view: text, markup, annotated - select for diffs
Tue Mar 5 22:49:38 2019 UTC (5 years, 9 months ago) by christos
Branches: MAIN
CVS tags: phil-wifi-20191119, phil-wifi-20190609, netbsd-9-base, netbsd-9-0-RC1
Branch point for: netbsd-9
Diff to: previous 1.64: preferred, colored
Changes since revision 1.64: +8 -2 lines
Jemalloc initializes mutexes before we become threaded and expects to use
them later.

Revision 1.64: download - view: text, markup, annotated - select for diffs
Fri Dec 8 09:24:31 2017 UTC (7 years ago) by kre
Branches: MAIN
CVS tags: phil-wifi-base, pgoyette-compat-merge-20190127, pgoyette-compat-base, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, pgoyette-compat
Branch point for: phil-wifi
Diff to: previous 1.63: preferred, colored
Changes since revision 1.63: +5 -4 lines

Deal with more lwp_park() timestamp unconsting

Revision 1.60.2.2: download - view: text, markup, annotated - select for diffs
Fri Nov 4 14:48:54 2016 UTC (8 years, 1 month ago) by pgoyette
Branches: pgoyette-localcount
Diff to: previous 1.60.2.1: preferred, colored; branchpoint 1.60: preferred, colored; next MAIN 1.61: preferred, colored
Changes since revision 1.60.2.1: +6 -4 lines
Sync with HEAD

Revision 1.63: download - view: text, markup, annotated - select for diffs
Mon Oct 31 23:53:12 2016 UTC (8 years, 1 month ago) by christos
Branches: MAIN
CVS tags: prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, perseant-stdc-iso10646-base, perseant-stdc-iso10646, netbsd-8-base, netbsd-8-3-RELEASE, netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, netbsd-8, matt-nb8-mediatek-base, matt-nb8-mediatek, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan
Diff to: previous 1.62: preferred, colored
Changes since revision 1.62: +6 -4 lines
Don't spin if we already own the mutex, otherwise we will get stuck spinning
forever, fixes timemutex{1,2} tests.

Revision 1.60.2.1: download - view: text, markup, annotated - select for diffs
Tue Jul 26 03:24:15 2016 UTC (8 years, 4 months ago) by pgoyette
Branches: pgoyette-localcount
Diff to: previous 1.60: preferred, colored
Changes since revision 1.60: +6 -6 lines
Sync with HEAD

Revision 1.62: download - view: text, markup, annotated - select for diffs
Sun Jul 17 13:49:43 2016 UTC (8 years, 4 months ago) by skrll
Branches: MAIN
CVS tags: pgoyette-localcount-20160806, pgoyette-localcount-20160726, localcount-20160914
Diff to: previous 1.61: preferred, colored
Changes since revision 1.61: +5 -5 lines
Use anonymous union for ptm_ceiling and old __pthread_spin_t field to
maintain backward compatibility and fix hppa build.  hppa has an non-
integer type __pthread_spin_t

Revision 1.61: download - view: text, markup, annotated - select for diffs
Sat Jul 16 12:58:11 2016 UTC (8 years, 4 months ago) by skrll
Branches: MAIN
Diff to: previous 1.60: preferred, colored
Changes since revision 1.60: +3 -3 lines
KNF

Revision 1.60: download - view: text, markup, annotated - select for diffs
Sun Jul 3 14:24:58 2016 UTC (8 years, 5 months ago) by christos
Branches: MAIN
CVS tags: pgoyette-localcount-base
Branch point for: pgoyette-localcount
Diff to: previous 1.59: preferred, colored
Changes since revision 1.59: +184 -13 lines
GSoC 2016 Charles Cui: Implement thread priority protection based on work
by Andy Doran. Also document the get/set pshared thread calls as not
implemented, and add a skeleton implementation that is disabled.
XXX: document _sched_protect(2).

Revision 1.54.2.2: download - view: text, markup, annotated - select for diffs
Wed Aug 20 00:02:20 2014 UTC (10 years, 3 months ago) by tls
Branches: tls-maxphys
Diff to: previous 1.54.2.1: preferred, colored; branchpoint 1.54: preferred, colored; next MAIN 1.55: preferred, colored
Changes since revision 1.54.2.1: +56 -44 lines
Rebase to HEAD as of a few days ago.

Revision 1.51.2.3: download - view: text, markup, annotated - select for diffs
Thu May 22 11:36:59 2014 UTC (10 years, 6 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.51.2.2: preferred, colored; branchpoint 1.51: preferred, colored; next MAIN 1.52: preferred, colored
Changes since revision 1.51.2.2: +98 -48 lines
sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs.  ("Protocol error: too many arguments")

Revision 1.51.4.1: download - view: text, markup, annotated - select for diffs
Thu Feb 20 13:53:26 2014 UTC (10 years, 9 months ago) by sborrill
Branches: netbsd-5
Diff to: previous 1.51: preferred, colored; next MAIN 1.52: preferred, colored
Changes since revision 1.51: +56 -44 lines
Pull up the following revisions(s) (requested by prlw1 in ticket #1898):
	lib/libpthread/pthread_cond.c:	revision 1.62
	lib/libpthread/pthread_mutex.c:	revision 1.57,1.59

Partial fix for thread deadlock commonly observed with named.
Also address PR/44756.

Revision 1.51.22.2: download - view: text, markup, annotated - select for diffs
Thu Feb 20 13:00:40 2014 UTC (10 years, 9 months ago) by sborrill
Branches: netbsd-6
Diff to: previous 1.51.22.1: preferred, colored; branchpoint 1.51: preferred, colored; next MAIN 1.52: preferred, colored
Changes since revision 1.51.22.1: +56 -44 lines
Pull up the following revisions(s) (requested by prlw1 in ticket #1029):
	lib/libpthread/pthread_cond.c:	revision 1.62
	lib/libpthread/pthread_mutex.c:	revision 1.57,1.59

Partial fix for thread deadlock commonly observed with named.
Also address PR/44756.

Revision 1.59: download - view: text, markup, annotated - select for diffs
Mon Feb 3 15:51:01 2014 UTC (10 years, 10 months ago) by rmind
Branches: MAIN
CVS tags: yamt-pagecache-base9, tls-maxphys-base, tls-earlyentropy-base, tls-earlyentropy, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3, netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-base, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1, netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE, netbsd-7-0, netbsd-7
Diff to: previous 1.58: preferred, colored
Changes since revision 1.58: +53 -44 lines
pthread__mutex_lock_slow: fix the handling of a potential race with the
non-interlocked CAS in the fast unlock path -- it is unsafe to test for
the waiters-bit while the owner thread is running, we have to spin for
the owner or its state change to be sure about the presence of the bit.
Split off the logic into the pthread__mutex_setwaiters() routine.

This is a partial fix to the named lockup problem (also see PR/44756).
It seems there is another race which can be reproduced on faster CPUs.

Revision 1.58: download - view: text, markup, annotated - select for diffs
Fri Jan 31 20:44:01 2014 UTC (10 years, 10 months ago) by christos
Branches: MAIN
Diff to: previous 1.57: preferred, colored
Changes since revision 1.57: +4 -4 lines
remove compatibility code for handling CLOCK_MONOTONIC and handle it in the
syscall directly.

Revision 1.57: download - view: text, markup, annotated - select for diffs
Fri Jan 31 19:22:00 2014 UTC (10 years, 10 months ago) by christos
Branches: MAIN
Diff to: previous 1.56: preferred, colored
Changes since revision 1.56: +5 -2 lines
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.

Revision 1.54.2.1: download - view: text, markup, annotated - select for diffs
Sun Jun 23 06:21:08 2013 UTC (11 years, 5 months ago) by tls
Branches: tls-maxphys
Diff to: previous 1.54: preferred, colored
Changes since revision 1.54: +42 -4 lines
resync from head

Revision 1.51.22.1: download - view: text, markup, annotated - select for diffs
Mon Apr 29 01:50:18 2013 UTC (11 years, 7 months ago) by riz
Branches: netbsd-6
CVS tags: netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1
Diff to: previous 1.51: preferred, colored
Changes since revision 1.51: +27 -3 lines
Pull up following revision(s) (requested by manu in ticket #869):
	lib/libpthread/pthread_rwlock.c: revision 1.33
	lib/libc/include/reentrant.h: revision 1.16
	lib/libpthread/pthread_cond.c: revision 1.59
	lib/libpthread/pthread_misc.c: revision 1.15
	lib/libc/thread-stub/thread-stub.c: revision 1.23
	lib/libpthread/pthread_cancelstub.c: revision 1.38
	lib/libpthread/pthread_specific.c: revision 1.26
	lib/libpthread/pthread_mutex.c: revision 1.56
	lib/libpthread/pthread_tsd.c: revision 1.11
	lib/libpthread/Makefile: revision 1.80
	lib/libpthread/pthread.c: revision 1.143
	lib/libpthread/pthread_int.h: revision 1.89
- 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

Revision 1.56: download - view: text, markup, annotated - select for diffs
Thu Mar 21 16:49:12 2013 UTC (11 years, 8 months ago) by christos
Branches: MAIN
CVS tags: riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, agc-symver-base, agc-symver
Diff to: previous 1.55: preferred, colored
Changes since revision 1.55: +25 -3 lines
- 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

Revision 1.55: download - view: text, markup, annotated - select for diffs
Wed Mar 6 11:31:34 2013 UTC (11 years, 9 months ago) by yamt
Branches: MAIN
Diff to: previous 1.54: preferred, colored
Changes since revision 1.54: +19 -3 lines
add comments
whitespace

Revision 1.51.2.2: download - view: text, markup, annotated - select for diffs
Tue Oct 30 18:59:15 2012 UTC (12 years, 1 month ago) by yamt
Branches: yamt-pagecache
CVS tags: yamt-pagecache-tag8
Diff to: previous 1.51.2.1: preferred, colored; branchpoint 1.51: preferred, colored
Changes since revision 1.51.2.1: +6 -3 lines
sync with head

Revision 1.54: download - view: text, markup, annotated - select for diffs
Thu Aug 16 04:49:47 2012 UTC (12 years, 3 months ago) by matt
Branches: MAIN
CVS tags: yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6
Branch point for: tls-maxphys
Diff to: previous 1.53: preferred, colored
Changes since revision 1.53: +6 -3 lines
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.

Revision 1.51.2.1: download - view: text, markup, annotated - select for diffs
Tue Apr 17 00:05:31 2012 UTC (12 years, 7 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.51: preferred, colored
Changes since revision 1.51: +2 -32 lines
sync with head

Revision 1.53: download - view: text, markup, annotated - select for diffs
Tue Mar 13 01:05:55 2012 UTC (12 years, 9 months ago) by joerg
Branches: MAIN
CVS tags: yamt-pagecache-base5, yamt-pagecache-base4
Diff to: previous 1.52: preferred, colored
Changes since revision 1.52: +2 -4 lines
Move the pthread_once alias where it belongs.

Revision 1.52: download - view: text, markup, annotated - select for diffs
Mon Mar 12 21:35:10 2012 UTC (12 years, 9 months ago) by joerg
Branches: MAIN
Diff to: previous 1.51: preferred, colored
Changes since revision 1.51: +2 -30 lines
Move pthread_once implementation into a separate file, it doesn't depend
on the mutex implementation in any way.

Revision 1.48.2.2: download - view: text, markup, annotated - select for diffs
Thu Sep 18 04:39:24 2008 UTC (16 years, 2 months ago) by wrstuden
Branches: wrstuden-revivesa
Diff to: previous 1.48.2.1: preferred, colored; branchpoint 1.48: preferred, colored; next MAIN 1.49: preferred, colored
Changes since revision 1.48.2.1: +8 -7 lines
Sync with wrstuden-revivesa-base-2.

Revision 1.22.2.1: download - view: text, markup, annotated - select for diffs
Tue Sep 16 18:49:32 2008 UTC (16 years, 2 months ago) by bouyer
Branches: netbsd-4
Diff to: previous 1.22: preferred, colored; next MAIN 1.23: preferred, colored
Changes since revision 1.22: +10 -3 lines
Sync with the following revisions (requested by skrll in ticket #1196):
	gnu/dist/gdb						removed
	gnu/usr.bin/gdb53					removed
	distrib/cats/instkernel/Makefile			1.14.6.1
	gnu/dist/gdb6/bfd/config.bfd				1.3.6.1
	gnu/dist/gdb6/bfd/elfxx-sparc.c				1.1.1.2.6.1
	gnu/dist/gdb6/bfd/elfxx-sparc.h				1.1.1.2.6.1
	gnu/dist/gdb6/gdb/Makefile.in				1.2.2.1.2.2
	gnu/dist/gdb6/gdb/alpha-tdep.c				1.1.1.2.6.1
	gnu/dist/gdb6/gdb/alpha-tdep.h				1.1.1.2.6.1
	gnu/dist/gdb6/gdb/alphabsd-nat.c			1.1.1.2.6.2
	gnu/dist/gdb6/gdb/alphabsd-nat.h			1.1.2.1
	gnu/dist/gdb6/gdb/alphabsd-tdep.c			1.1.1.2.6.1
	gnu/dist/gdb6/gdb/alphabsd-tdep.h			1.1.1.2.6.1
	gnu/dist/gdb6/gdb/alphanbsd-nat.c			1.1.2.1
	gnu/dist/gdb6/gdb/alphanbsd-tdep.c			1.1.1.2.6.1
	gnu/dist/gdb6/gdb/amd64-nat.c				1.1.1.2.6.1
	gnu/dist/gdb6/gdb/amd64bsd-nat.c			1.1.1.2.6.1
	gnu/dist/gdb6/gdb/amd64nbsd-nat.c			1.1.1.2.6.3
	gnu/dist/gdb6/gdb/amd64nbsd-tdep.c			1.1.1.2.6.1
	gnu/dist/gdb6/gdb/arm-tdep.h				1.1.1.2.6.1
	gnu/dist/gdb6/gdb/armbsd-tdep.c				1.1.2.1
	gnu/dist/gdb6/gdb/armnbsd-nat.c				1.1.1.2.6.2
	gnu/dist/gdb6/gdb/armnbsd-tdep.c			1.1.1.2.6.1
	gnu/dist/gdb6/gdb/configure				1.1.1.2.6.1
	gnu/dist/gdb6/gdb/configure.ac				1.1.1.2.6.1
	gnu/dist/gdb6/gdb/i386bsd-nat.c				1.1.1.2.6.1
	gnu/dist/gdb6/gdb/i386nbsd-tdep.c			1.1.1.2.6.1
	gnu/dist/gdb6/gdb/m68kbsd-nat.c				1.1.1.2.6.2
	gnu/dist/gdb6/gdb/mipsnbsd-nat.c			1.1.1.2.6.2
	gnu/dist/gdb6/gdb/nbsd-thread.c				1.1.2.3
	gnu/dist/gdb6/gdb/ppcnbsd-nat.c				1.1.1.2.6.2
	gnu/dist/gdb6/gdb/ppcnbsd-tdep.c			1.3.6.1
	gnu/dist/gdb6/gdb/sh-tdep.c				1.1.1.2.6.1
	gnu/dist/gdb6/gdb/shnbsd-nat.c				1.1.1.2.6.3
	gnu/dist/gdb6/gdb/shnbsd-tdep.c				1.1.1.2.6.4
	gnu/dist/gdb6/gdb/shnbsd-tdep.h				1.1.1.2.6.1
	gnu/dist/gdb6/gdb/sparc-nat.c				1.1.1.2.6.1
	gnu/dist/gdb6/gdb/sparc64nbsd-nat.c			1.1.1.2.6.2
	gnu/dist/gdb6/gdb/sparcnbsd-nat.c			1.1.1.2.6.2
	gnu/dist/gdb6/gdb/tramp-frame.h				1.1.1.2.6.1
	gnu/dist/gdb6/gdb/vaxbsd-nat.c				1.1.1.2.6.2
	gnu/dist/gdb6/gdb/config/alpha/nbsd.mh			1.1.1.2.6.1
	gnu/dist/gdb6/gdb/config/arm/nbsd.mt			1.1.1.1.6.1
	gnu/dist/gdb6/gdb/config/arm/nbsdelf.mh			1.1.1.1.6.1
	gnu/dist/gdb6/gdb/config/i386/nbsd64.mh			1.1.1.1.6.1
	gnu/dist/gdb6/gdb/config/m68k/nbsdelf.mh		1.1.1.1.6.1
	gnu/dist/gdb6/gdb/config/mips/nbsd.mh			1.1.1.1.6.1
	gnu/dist/gdb6/gdb/config/powerpc/nbsd.mh		1.1.1.2.6.1
	gnu/dist/gdb6/gdb/config/sh/nbsd.mh			1.1.1.1.6.2
	gnu/dist/gdb6/gdb/config/sh/tm-nbsd.h			1.1.1.1.6.1
	gnu/dist/gdb6/gdb/config/sparc/nbsd64.mh		1.1.1.1.6.1
	gnu/dist/gdb6/gdb/config/sparc/nbsdelf.mh		1.1.1.1.6.1
	gnu/dist/gdb6/gdb/config/vax/nbsdelf.mh			1.1.1.1.6.1
	gnu/dist/gdb6/opcodes/configure				1.1.1.2.6.1
	gnu/dist/gdb6/opcodes/configure.in			1.1.1.2.6.1
	gnu/usr.bin/Makefile					1.126.4.1
	gnu/usr.bin/gdb6/arch/alpha/config.h			1.3.4.1
	gnu/usr.bin/gdb6/arch/alpha/defs.mk			1.2.6.1
	gnu/usr.bin/gdb6/arch/alpha/init.c			1.2.6.1
	gnu/usr.bin/gdb6/arch/alpha/nm.h			1.2.6.1
	gnu/usr.bin/gdb6/arch/arm/defs.mk			1.2.6.2
	gnu/usr.bin/gdb6/arch/arm/init.c			1.1.6.1
	gnu/usr.bin/gdb6/arch/armeb/config.h			1.1.6.2
	gnu/usr.bin/gdb6/arch/armeb/defs.mk			1.1.6.3
	gnu/usr.bin/gdb6/arch/armeb/init.c			1.1.6.2
	gnu/usr.bin/gdb6/arch/armeb/tm.h			1.1.6.2
	gnu/usr.bin/gdb6/arch/armeb/version.c			1.1.6.2
	gnu/usr.bin/gdb6/arch/i386/defs.mk			1.4.4.1
	gnu/usr.bin/gdb6/arch/i386/init.c			1.3.6.1
	gnu/usr.bin/gdb6/arch/m68000/config.h			1.1.6.2
	gnu/usr.bin/gdb6/arch/m68000/defs.mk			1.1.6.2
	gnu/usr.bin/gdb6/arch/m68000/init.c			1.1.6.2
	gnu/usr.bin/gdb6/arch/m68000/tm.h			1.1.6.2
	gnu/usr.bin/gdb6/arch/m68000/version.c			1.1.6.2
	gnu/usr.bin/gdb6/arch/m68k/defs.mk			1.1.4.1
	gnu/usr.bin/gdb6/arch/m68k/init.c			1.1.4.1
	gnu/usr.bin/gdb6/arch/mipseb/config.h			1.3.4.1
	gnu/usr.bin/gdb6/arch/mipseb/defs.mk			1.2.6.2
	gnu/usr.bin/gdb6/arch/mipseb/init.c			1.2.6.2
	gnu/usr.bin/gdb6/arch/mipsel/config.h			1.2.6.3
	gnu/usr.bin/gdb6/arch/mipsel/defs.mk			1.2.6.3
	gnu/usr.bin/gdb6/arch/mipsel/init.c			1.2.6.3
	gnu/usr.bin/gdb6/arch/mipsel/tm.h			1.2.6.2
	gnu/usr.bin/gdb6/arch/mipsel/version.c			1.2.6.2
	gnu/usr.bin/gdb6/arch/powerpc/defs.mk			1.3.6.1
	gnu/usr.bin/gdb6/arch/powerpc/init.c			1.3.6.1
	gnu/usr.bin/gdb6/arch/sh3eb/config.h			1.2.2.2
	gnu/usr.bin/gdb6/arch/sh3eb/defs.mk			1.2.8.3
	gnu/usr.bin/gdb6/arch/sh3eb/init.c			1.1.8.3
	gnu/usr.bin/gdb6/arch/sh3eb/nm.h			1.1.8.2
	gnu/usr.bin/gdb6/arch/sh3eb/tm.h			1.1.8.2
	gnu/usr.bin/gdb6/arch/sh3eb/version.c			1.1.8.2
	gnu/usr.bin/gdb6/arch/sh3el/config.h			1.2.2.2
	gnu/usr.bin/gdb6/arch/sh3el/defs.mk			1.2.8.3
	gnu/usr.bin/gdb6/arch/sh3el/init.c			1.1.8.3
	gnu/usr.bin/gdb6/arch/sh3el/nm.h			1.1.8.2
	gnu/usr.bin/gdb6/arch/sh3el/tm.h			1.1.8.2
	gnu/usr.bin/gdb6/arch/sh3el/version.c			1.1.8.2
	gnu/usr.bin/gdb6/arch/sparc/defs.mk			1.2.6.1
	gnu/usr.bin/gdb6/arch/sparc/init.c			1.1.6.1
	gnu/usr.bin/gdb6/arch/sparc64/defs.mk			1.2.6.1
	gnu/usr.bin/gdb6/arch/sparc64/init.c			1.1.6.1
	gnu/usr.bin/gdb6/arch/vax/config.h			1.1.6.2
	gnu/usr.bin/gdb6/arch/vax/defs.mk			1.1.6.2
	gnu/usr.bin/gdb6/arch/vax/init.c			1.1.6.2
	gnu/usr.bin/gdb6/arch/vax/tm.h				1.1.6.2
	gnu/usr.bin/gdb6/arch/vax/version.c			1.1.6.2
	gnu/usr.bin/gdb6/arch/x86_64/defs.mk			1.2.6.1
	gnu/usr.bin/gdb6/arch/x86_64/init.c			1.1.6.1
	gnu/usr.bin/gdb6/bfd/arch/armeb/bfd.h			1.1.6.2
	gnu/usr.bin/gdb6/bfd/arch/armeb/bfdver.h		1.1.6.2
	gnu/usr.bin/gdb6/bfd/arch/armeb/config.h		1.1.6.2
	gnu/usr.bin/gdb6/bfd/arch/armeb/defs.mk			1.1.6.2
	gnu/usr.bin/gdb6/bfd/arch/m68000/bfd.h			1.1.6.2
	gnu/usr.bin/gdb6/bfd/arch/m68000/bfdver.h		1.1.6.2
	gnu/usr.bin/gdb6/bfd/arch/m68000/config.h		1.1.6.2
	gnu/usr.bin/gdb6/bfd/arch/m68000/defs.mk		1.1.6.2
	gnu/usr.bin/gdb6/bfd/arch/mipsel/bfd.h			1.1.6.2
	gnu/usr.bin/gdb6/bfd/arch/mipsel/bfdver.h		1.1.6.2
	gnu/usr.bin/gdb6/bfd/arch/mipsel/config.h		1.1.6.2
	gnu/usr.bin/gdb6/bfd/arch/mipsel/defs.mk		1.1.6.2
	gnu/usr.bin/gdb6/bfd/arch/sh3eb/bfd.h			1.1.8.3
	gnu/usr.bin/gdb6/bfd/arch/sh3eb/bfdver.h		1.1.8.2
	gnu/usr.bin/gdb6/bfd/arch/sh3eb/config.h		1.1.8.2
	gnu/usr.bin/gdb6/bfd/arch/sh3eb/defs.mk			1.1.8.3
	gnu/usr.bin/gdb6/bfd/arch/sh3el/bfd.h			1.1.8.3
	gnu/usr.bin/gdb6/bfd/arch/sh3el/bfdver.h		1.1.8.2
	gnu/usr.bin/gdb6/bfd/arch/sh3el/config.h		1.1.8.2
	gnu/usr.bin/gdb6/bfd/arch/sh3el/defs.mk			1.1.8.3
	gnu/usr.bin/gdb6/bfd/arch/vax/bfd.h			1.1.6.2
	gnu/usr.bin/gdb6/bfd/arch/vax/bfdver.h			1.1.6.2
	gnu/usr.bin/gdb6/bfd/arch/vax/config.h			1.1.6.2
	gnu/usr.bin/gdb6/bfd/arch/vax/defs.mk			1.1.6.2
	gnu/usr.bin/gdb6/gdb/Makefile				1.5.2.1.2.2
	gnu/usr.bin/gdb6/gdbtui/Makefile			1.2.6.1
	gnu/usr.bin/gdb6/libiberty/arch/armeb/config.h		1.1.6.2
	gnu/usr.bin/gdb6/libiberty/arch/armeb/defs.mk		1.1.6.2
	gnu/usr.bin/gdb6/libiberty/arch/m68000/config.h		1.1.6.2
	gnu/usr.bin/gdb6/libiberty/arch/m68000/defs.mk		1.1.6.2
	gnu/usr.bin/gdb6/libiberty/arch/mipsel/config.h		1.1.6.2
	gnu/usr.bin/gdb6/libiberty/arch/mipsel/defs.mk		1.1.6.2
	gnu/usr.bin/gdb6/libiberty/arch/sh3eb/config.h		1.1.8.2
	gnu/usr.bin/gdb6/libiberty/arch/sh3eb/defs.mk		1.1.8.2
	gnu/usr.bin/gdb6/libiberty/arch/sh3el/config.h		1.1.8.2
	gnu/usr.bin/gdb6/libiberty/arch/sh3el/defs.mk		1.1.8.2
	gnu/usr.bin/gdb6/libiberty/arch/vax/config.h		1.1.6.2
	gnu/usr.bin/gdb6/libiberty/arch/vax/defs.mk		1.1.6.2
	gnu/usr.bin/gdb6/opcodes/arch/armeb/config.h		1.1.6.2
	gnu/usr.bin/gdb6/opcodes/arch/armeb/defs.mk		1.1.6.2
	gnu/usr.bin/gdb6/opcodes/arch/m68000/config.h		1.1.6.2
	gnu/usr.bin/gdb6/opcodes/arch/m68000/defs.mk		1.1.6.2
	gnu/usr.bin/gdb6/opcodes/arch/mipsel/config.h		1.1.6.2
	gnu/usr.bin/gdb6/opcodes/arch/mipsel/defs.mk		1.1.6.2
	gnu/usr.bin/gdb6/opcodes/arch/sh3eb/config.h		1.1.8.2
	gnu/usr.bin/gdb6/opcodes/arch/sh3eb/defs.mk		1.1.8.3
	gnu/usr.bin/gdb6/opcodes/arch/sh3el/config.h		1.1.8.2
	gnu/usr.bin/gdb6/opcodes/arch/sh3el/defs.mk		1.1.8.3
	gnu/usr.bin/gdb6/opcodes/arch/vax/config.h		1.1.6.2
	gnu/usr.bin/gdb6/opcodes/arch/vax/defs.mk		1.1.6.2
	gnu/usr.bin/gdb6/readline/arch/armeb/config.h		1.1.6.2
	gnu/usr.bin/gdb6/readline/arch/armeb/defs.mk		1.1.6.2
	gnu/usr.bin/gdb6/readline/arch/m68000/config.h		1.1.6.2
	gnu/usr.bin/gdb6/readline/arch/m68000/defs.mk		1.1.6.2
	gnu/usr.bin/gdb6/readline/arch/mipsel/config.h		1.1.6.2
	gnu/usr.bin/gdb6/readline/arch/mipsel/defs.mk		1.1.6.2
	gnu/usr.bin/gdb6/readline/arch/sh3eb/config.h		1.1.8.2
	gnu/usr.bin/gdb6/readline/arch/sh3eb/defs.mk		1.1.8.2
	gnu/usr.bin/gdb6/readline/arch/sh3el/config.h		1.1.8.2
	gnu/usr.bin/gdb6/readline/arch/sh3el/defs.mk		1.1.8.2
	gnu/usr.bin/gdb6/readline/arch/vax/config.h		1.1.6.2
	gnu/usr.bin/gdb6/readline/arch/vax/defs.mk		1.1.6.2
	gnu/usr.bin/gdb6/sim/arch/mipseb/cconfig.h		1.1.2.1
	gnu/usr.bin/gdb6/sim/arch/mipseb/config.h		1.1.2.1
	gnu/usr.bin/gdb6/sim/arch/mipseb/defs.mk		1.1.2.1
	gnu/usr.bin/gdb6/sim/arch/mipsel/cconfig.h		1.1.2.1
	gnu/usr.bin/gdb6/sim/arch/mipsel/config.h		1.1.2.1
	gnu/usr.bin/gdb6/sim/arch/mipsel/defs.mk		1.1.2.1
	lib/libkvm/kvm_sparc64.c				1.10.18.2
	lib/libpthread/pthread.c				1.48.6.4
	lib/libpthread/pthread_barrier.c			1.6.18.1
	lib/libpthread/pthread_cond.c				1.18.12.2
	lib/libpthread/pthread_debug.h				1.8.18.1
	lib/libpthread/pthread_int.h				1.34.4.5
	lib/libpthread/pthread_lock.c				1.14.6.1
	lib/libpthread/pthread_mutex.c				1.22.4.2
	lib/libpthread/pthread_run.c				1.18.12.4
	lib/libpthread/pthread_rwlock.c				1.13.6.2
	lib/libpthread/pthread_sa.c				1.37.6.5
	lib/libpthread/pthread_sig.c				1.47.4.8
	lib/libpthread/pthread_sleep.c				1.7.6.2
	lib/libpthread/sem.c					1.9.6.2
	lib/libpthread/arch/sh3/pthread_md.h			1.3.6.1
	regress/lib/libpthread/resolv/Makefile			1.1.12.1
	regress/lib/libpthread/sigrunning/Makefile		1.1.2.1
	regress/lib/libpthread/sigrunning/sigrunning.c		1.1.2.1
	share/mk/bsd.own.mk					1.489.4.3
	sys/arch/amd64/amd64/locore.S				1.18.14.1
	sys/arch/amd64/amd64/machdep.c				1.44.2.3.2.1
	sys/arch/amd64/conf/kern.ldscript			1.1.70.1
	sys/arch/cats/conf/Makefile.cats.inc			1.17.30.1
	sys/arch/shark/conf/Makefile.shark.inc			1.6.30.1
	sys/arch/sparc64/conf/kern.ldscript			1.7.26.2
	sys/arch/sparc64/conf/kern32.ldscript			1.6.26.2
	sys/arch/sparc64/include/kcore.h			1.4.92.2
	sys/arch/sparc64/sparc64/locore.s			1.232.4.4
	sys/arch/sparc64/sparc64/machdep.c			1.193.4.3
	sys/arch/sparc64/sparc64/pmap.c				1.184.2.1.2.4
	sys/conf/newvers.sh					1.42.26.2
	sys/kern/kern_sa.c					1.87.4.11
	sys/kern/kern_synch.c					1.173.4.2
	sys/sys/savar.h						1.20.10.2
	tools/gdb/Makefile					1.9.4.1
	tools/gdb/mknative-gdb					1.1.6.1

pullup the wrstuden-fixsa CVS branch to netbsd-4:
toolchain/35540 - GDB 6 support for pthreads.
port-sparc64/37534 - ktrace firefox gives
    kernel trap 30: data access expection
GDB changes:
- delete gdb53
- enable gdb6 on all architectures
- add support for amd64 crash dumps
- add support for sparc64 crash dumps
- add support for /proc pid to executable filename for all archs
- enable thread support for all architectures
- add a note section to kernels to all platforms
- support detection/unwinding of signals for most architectures.
- Fix PTHREAD_UCONTEXT_TO_REG / PTHREAD_REG_TO_UCONTEXT on sh3.
- Apply fix from binutils-current so that sparc gdb can be cross built
  on a 64bit host.
SA/pthread changes:
Pre-allocate memory needed for event delivery. Eliminates dropped
interrupts under load.
Deliver intra-process signals to running threads
Eliminate some deadlock scenarios
Fix intra-process signal delivery when delivering to a thread waiting
for signals. Makes afs work again!

Revision 1.51.6.2: download - view: text, markup, annotated - select for diffs
Sat Aug 2 19:46:31 2008 UTC (16 years, 4 months ago) by matt
Branches: christos-time_t
Diff to: previous 1.51.6.1: preferred, colored; branchpoint 1.51: preferred, colored; next MAIN 1.52: preferred, colored
Changes since revision 1.51.6.1: +636 -0 lines
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.

Revision 1.51.6.1
Sat Aug 2 19:46:30 2008 UTC (16 years, 4 months ago) by matt
Branches: christos-time_t
FILE REMOVED
Changes since revision 1.51: +0 -636 lines
file pthread_mutex.c was added on branch christos-time_t on 2008-08-02 19:46:31 +0000

Revision 1.51: download - view: text, markup, annotated - select for diffs
Sat Aug 2 19:46:30 2008 UTC (16 years, 4 months ago) by matt
Branches: MAIN
CVS tags: yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, netbsd-6-base, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, netbsd-5-base, netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-3-RELEASE, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, netbsd-5-2, netbsd-5-1-RELEASE, netbsd-5-1-RC4, netbsd-5-1-RC3, netbsd-5-1-RC2, netbsd-5-1-RC1, netbsd-5-1-5-RELEASE, netbsd-5-1-4-RELEASE, netbsd-5-1-3-RELEASE, netbsd-5-1-2-RELEASE, netbsd-5-1-1-RELEASE, netbsd-5-1, netbsd-5-0-RELEASE, netbsd-5-0-RC4, netbsd-5-0-RC3, netbsd-5-0-RC2, netbsd-5-0-RC1, netbsd-5-0-2-RELEASE, netbsd-5-0-1-RELEASE, netbsd-5-0, matt-premerge-20091211, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, matt-nb5-pq3-base, matt-nb5-pq3, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-premerge-20091211, matt-nb5-mips64-k15, matt-nb5-mips64, matt-nb4-mips64-k7-u2a-k9b, matt-mips64-premerge-20101231, matt-mips64-base2, jym-xensuspend-nbase, jym-xensuspend-base, jym-xensuspend, christos-time_t-nbase, christos-time_t-base, cherry-xenmp-base, cherry-xenmp, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2
Branch point for: yamt-pagecache, netbsd-6, netbsd-5, christos-time_t
Diff to: previous 1.50: preferred, colored
Changes since revision 1.50: +8 -7 lines
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.

Revision 1.48.2.1: download - view: text, markup, annotated - select for diffs
Mon Jun 23 04:29:54 2008 UTC (16 years, 5 months ago) by wrstuden
Branches: wrstuden-revivesa
Diff to: previous 1.48: preferred, colored
Changes since revision 1.48: +45 -28 lines
Sync w/ -current. 34 merge conflicts to follow.

Revision 1.47.2.2: download - view: text, markup, annotated - select for diffs
Wed Jun 4 02:04:34 2008 UTC (16 years, 6 months ago) by yamt
Branches: yamt-pf42
Diff to: previous 1.47.2.1: preferred, colored; branchpoint 1.47: preferred, colored; next MAIN 1.48: preferred, colored
Changes since revision 1.47.2.1: +45 -28 lines
sync with head

Revision 1.50: download - view: text, markup, annotated - select for diffs
Sun May 25 17:05:28 2008 UTC (16 years, 6 months ago) by ad
Branches: MAIN
CVS tags: yamt-pf42-base4, yamt-pf42-base3, wrstuden-revivesa-base-1, wrstuden-revivesa-base
Diff to: previous 1.49: preferred, colored
Changes since revision 1.49: +28 -28 lines
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.

Revision 1.49: download - view: text, markup, annotated - select for diffs
Sun May 25 12:29:59 2008 UTC (16 years, 6 months ago) by ad
Branches: MAIN
Diff to: previous 1.48: preferred, colored
Changes since revision 1.48: +19 -2 lines
Add some general comments about the mutex implementation.

Revision 1.47.2.1: download - view: text, markup, annotated - select for diffs
Sun May 18 12:30:40 2008 UTC (16 years, 6 months ago) by yamt
Branches: yamt-pf42
Diff to: previous 1.47: preferred, colored
Changes since revision 1.47: +2 -9 lines
sync with head.

Revision 1.48: download - view: text, markup, annotated - select for diffs
Mon Apr 28 20:23:01 2008 UTC (16 years, 7 months ago) by martin
Branches: MAIN
CVS tags: yamt-pf42-base2, hpcarm-cleanup-nbase
Branch point for: wrstuden-revivesa
Diff to: previous 1.47: preferred, colored
Changes since revision 1.47: +2 -9 lines
Remove clause 3 and 4 from TNF licenses

Revision 1.45.2.1: download - view: text, markup, annotated - select for diffs
Mon Mar 24 07:14:45 2008 UTC (16 years, 8 months ago) by keiichi
Branches: keiichi-mipv6
Diff to: previous 1.45: preferred, colored; next MAIN 1.46: preferred, colored
Changes since revision 1.45: +24 -12 lines
sync with head.

Revision 1.31.2.3: download - view: text, markup, annotated - select for diffs
Sun Mar 23 00:40:28 2008 UTC (16 years, 8 months ago) by matt
Branches: matt-armv6
Diff to: previous 1.31.2.2: preferred, colored; branchpoint 1.31: preferred, colored; next MAIN 1.32: preferred, colored
Changes since revision 1.31.2.2: +389 -257 lines
sync with HEAD

Revision 1.47: download - view: text, markup, annotated - select for diffs
Fri Mar 7 22:23:57 2008 UTC (16 years, 9 months ago) by ad
Branches: MAIN
CVS tags: yamt-pf42-baseX, yamt-pf42-base, matt-armv6-nbase, keiichi-mipv6-base
Branch point for: yamt-pf42
Diff to: previous 1.46: preferred, colored
Changes since revision 1.46: +6 -6 lines
pthread__mutex_lock_slow:

- don't stop spinning if there are already waiters on the mutex, there is
  no point.
- cosmetic change.

Revision 1.46: download - view: text, markup, annotated - select for diffs
Sat Feb 23 15:15:57 2008 UTC (16 years, 9 months ago) by ad
Branches: MAIN
CVS tags: hpcarm-cleanup-base
Diff to: previous 1.45: preferred, colored
Changes since revision 1.45: +20 -8 lines
Fix pthread_mutex_trylock() for recursive mutexes. PR lib/38087.
Based on a patch provided by rafal@.

Revision 1.45: download - view: text, markup, annotated - select for diffs
Thu Feb 14 21:40:51 2008 UTC (16 years, 9 months ago) by ad
Branches: MAIN
Branch point for: keiichi-mipv6
Diff to: previous 1.44: preferred, colored
Changes since revision 1.44: +19 -26 lines
Adjust mutex/rwlock definitions to match reality now that there is only
one implementation of each. PR lib/38030.

Revision 1.44: download - view: text, markup, annotated - select for diffs
Sun Feb 10 18:50:54 2008 UTC (16 years, 10 months ago) by ad
Branches: MAIN
Diff to: previous 1.43: preferred, colored
Changes since revision 1.43: +389 -251 lines
- Remove libpthread's atomic ops.
- Remove the old spinlock-based mutex and rwlock implementations.
- Use the atomic ops from libc.

Revision 1.43: download - view: text, markup, annotated - select for diffs
Fri Jan 25 02:12:10 2008 UTC (16 years, 10 months ago) by rafal
Branches: MAIN
Diff to: previous 1.42: preferred, colored
Changes since revision 1.42: +2 -4 lines
Make this compile after Andrew's fix (remove now-unused variables)

Revision 1.42: download - view: text, markup, annotated - select for diffs
Fri Jan 25 01:09:18 2008 UTC (16 years, 10 months ago) by ad
Branches: MAIN
Diff to: previous 1.41: preferred, colored
Changes since revision 1.41: +2 -12 lines
pthread_mutex_lock_slow: remove "deliberate deadlock" code that's not
needed with 1:1. PR lib/37524.

Revision 1.31.2.2: download - view: text, markup, annotated - select for diffs
Wed Jan 9 01:36:37 2008 UTC (16 years, 11 months ago) by matt
Branches: matt-armv6
Diff to: previous 1.31.2.1: preferred, colored; branchpoint 1.31: preferred, colored
Changes since revision 1.31.2.1: +39 -24 lines
sync with HEAD

Revision 1.41: download - view: text, markup, annotated - select for diffs
Tue Jan 8 20:56:08 2008 UTC (16 years, 11 months ago) by christos
Branches: MAIN
Diff to: previous 1.40: preferred, colored
Changes since revision 1.40: +3 -2 lines
add missing static decls.

Revision 1.40: download - view: text, markup, annotated - select for diffs
Sat Jan 5 01:37:35 2008 UTC (16 years, 11 months ago) by ad
Branches: MAIN
CVS tags: matt-armv6-base
Diff to: previous 1.39: preferred, colored
Changes since revision 1.39: +6 -5 lines
machine/lock.h, not sys/lock.h

Revision 1.39: download - view: text, markup, annotated - select for diffs
Mon Dec 24 14:46:29 2007 UTC (16 years, 11 months ago) by ad
Branches: MAIN
Diff to: previous 1.38: preferred, colored
Changes since revision 1.38: +22 -2 lines
- 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.

Revision 1.38: download - view: text, markup, annotated - select for diffs
Mon Nov 19 15:14:13 2007 UTC (17 years ago) by ad
Branches: MAIN
CVS tags: cube-autoconf-base, cube-autoconf
Diff to: previous 1.37: preferred, colored
Changes since revision 1.37: +2 -8 lines
Remove the debuglog stuff. ktrace is more useful now.

Revision 1.37: download - view: text, markup, annotated - select for diffs
Tue Nov 13 15:57:11 2007 UTC (17 years, 1 month ago) by ad
Branches: MAIN
Diff to: previous 1.36: preferred, colored
Changes since revision 1.36: +15 -15 lines
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.

Revision 1.31.2.1: download - view: text, markup, annotated - select for diffs
Tue Nov 6 23:11:42 2007 UTC (17 years, 1 month ago) by matt
Branches: matt-armv6
CVS tags: matt-armv6-prevmlocking
Diff to: previous 1.31: preferred, colored
Changes since revision 1.31: +19 -18 lines
sync with HEAD

Revision 1.22.4.2: download - view: text, markup, annotated - select for diffs
Sun Nov 4 04:26:58 2007 UTC (17 years, 1 month ago) by wrstuden
Branches: wrstuden-fixsa
Diff to: previous 1.22.4.1: preferred, colored; branchpoint 1.22: preferred, colored; next MAIN 1.23: preferred, colored
Changes since revision 1.22.4.1: +3 -3 lines
Check in changes to locking behavior.

pthread__sched() now takes a parameter indicating if the run queue is
already locked. Useful in cases where we already hold pthread__runqueue_lock.

pthread__suspend() now requires callers explicitly lock pthread__runqueue_lock
so we avoid issues with locking order regarding pt_statelock.

Adjsut our lock hierarchy. pthread__runqueue_lock is now above
pt_statelock, triggering the above adjustments. Adjust a lot of routines
as a result. Also move pt_siglock way up in the hierarchy, making
pthread__kill() not violate locking. Add a few extra locks to the list.

Adjust a botch in how pthread_join() used pthread-spintrylock().

pthread_cancel() now correctly walks up the locks with thread->pt_sleeplock.
We can't just lock it, as it points to a lock in the top locking rung. So
try locking, and if it fails, unlock and re-lock. Add code to cope with
the target thread not being in the expected state (which was on a
blocked queue) after we get all the locks.

Add comments to describe what's going on in places that I got confused.

Now that pt_statelock is lower in the locking order than
pthread__runqueue_lock, we can explicitly lock a thread's state before
we take it off the run queue. Adjust sched_yield() accordingly and
add some locking calls that were commented out before (as they'd have
been locking violations).

pthread_next(): now that we can lock the state lock while holding the run
queue lock, do so. Set a thread's state to PT_STATE_RUNNING before we
pull it off the run queue. Since we always are going to switch to it,
set pt_vpid and pt_lastlwp while setting the state. pthread_next
callers now _don't_ set these values.

pthread__kill(): grab pthread__runqueue_lock before target->pt_statelock.
If we want to target a thread that is on a blocked queue, do the
pthread_spintrylock() dance. Unlock all three locks we're running around
with, lock target->pt_sleeplock, then re-lock them all. After we lock,
make sure that the thread's still on a blocked queue before proceeding. If
it's not, either exit (if we wanted to wake out of sigtimedwait())
or start it all over. If the thread has gone live, it may have blocked
our signal and it'd be quite weird to get a signal you'd disabled, just
because the signaller had been running before you blocked it.

Revision 1.36: download - view: text, markup, annotated - select for diffs
Thu Sep 13 23:51:47 2007 UTC (17 years, 3 months ago) by ad
Branches: MAIN
Diff to: previous 1.35: preferred, colored
Changes since revision 1.35: +3 -3 lines
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);

Revision 1.35: download - view: text, markup, annotated - select for diffs
Tue Sep 11 10:27:44 2007 UTC (17 years, 3 months ago) by ad
Branches: MAIN
Diff to: previous 1.34: preferred, colored
Changes since revision 1.34: +3 -3 lines
Fix inverted test after merge of nick-csl-alignment.

Revision 1.34: download - view: text, markup, annotated - select for diffs
Mon Sep 10 11:34:05 2007 UTC (17 years, 3 months ago) by skrll
Branches: MAIN
Diff to: previous 1.33: preferred, colored
Changes since revision 1.33: +8 -6 lines
Merge nick-csl-alignment.

Revision 1.28.2.4: download - view: text, markup, annotated - select for diffs
Mon Sep 10 10:54:06 2007 UTC (17 years, 3 months ago) by skrll
Branches: nick-csl-alignment
Diff to: previous 1.28.2.3: preferred, colored; branchpoint 1.28: preferred, colored; next MAIN 1.29: preferred, colored
Changes since revision 1.28.2.3: +13 -14 lines
Sync with HEAD.

Revision 1.22.4.1: download - view: text, markup, annotated - select for diffs
Mon Sep 10 05:24:53 2007 UTC (17 years, 3 months ago) by wrstuden
Branches: wrstuden-fixsa
Diff to: previous 1.22: preferred, colored
Changes since revision 1.22: +9 -2 lines
Check in first step towards having pthread_kill() kill a thread running
on another CPU.

This change adds initial support for deferred signal handling. Just before
we go to sleep and while we hold &self->pt_statelock, check to see if we
have any deferred signals (blocked signals) pending. These are signals
that are not masked in our mask and which have been sent to us. We
were running when they came in. Further, since they are being handled
this way, there's a signal handler defined for them.

So unlock, run the signal handler(s), then carry on.

For condition variables, we consider this a spurious wakeup, so we just
return 0, having not unlocked the mutex. We run the handler with
the mutex held. This shouldn't matter, as you aren't supposed to play
with mutexes in signal handlers. :-)

For nanosleep(), we just process signals, then go to sleep.

For all other cases, we are in a loop with some external predicate. So
we process the signal then roll around the loop to see if it still applies.

In sched_yield(), spin until all deferred signals are gone. Since we hold
self->pt_statelock and that lock has to be held before sending a deferred
signal, no new deferred signals will come in until we're asleep.

While here, be more careful about locking while changing pt_state
to PT_STATE_RUNNING. Grab pt_statelock while doing it, and also set
next->pt_vpid to self->pt_vpid holding the same lock. Will make
the test to determine how to deliver a signal work right (since
a thread's vpid will soon matter in the general case). No longer
set next->pt_vpid in pthread__next().

Revision 1.33: download - view: text, markup, annotated - select for diffs
Sat Sep 8 22:49:50 2007 UTC (17 years, 3 months ago) by ad
Branches: MAIN
CVS tags: nick-csl-alignment-base5
Diff to: previous 1.32: preferred, colored
Changes since revision 1.32: +9 -10 lines
- Get rid of self->pt_mutexhint and use pthread__mutex_owned() instead.
- Update some comments and fix minor bugs. Minor cosmetic changes.
- Replace some spinlocks with mutexes and rwlocks.
- Change the process private semaphores to use mutexes and condition
  variables instead of doing the synchronization directly. Spinlocks
  are no longer used by the semaphore code.

Revision 1.32: download - view: text, markup, annotated - select for diffs
Fri Sep 7 14:09:28 2007 UTC (17 years, 3 months ago) by ad
Branches: MAIN
Diff to: previous 1.31: preferred, colored
Changes since revision 1.31: +6 -6 lines
- Don't take the mutex's spinlock (ptr_interlock) in pthread_cond_wait().
  Instead, make the deferred wakeup list a per-thread array and pass down
  the lwpid_t's that way.

- In pthread_cond_wait(), take the mutex before dealing with early wakeup.
  In this way there should never be contention on the CV's spinlock if
  the app follows POSIX rules (there should only be contention on the
  user-provided mutex).

- Add a port of the kernel's rwlocks. The rwlock's spinlock is only taken if
  there is contention. This is enabled where atomic ops are available. Right
  now that is only i386 and amd64 because I don't have other hardware to
  test with. It's trivial to add stubs for other architectures as long as
  they have compare-and-swap. When we have proper atomic ops the old rwlock
  code can be removed.

- Add a new mutex implementation that's similar to the kernel's mutexes, but
  uses compare-and-swap to maintain the waiters list, so no spinlocks are
  involved. Same caveats apply as for the rwlocks.

Revision 1.28.2.3: download - view: text, markup, annotated - select for diffs
Mon Sep 3 10:14:15 2007 UTC (17 years, 3 months ago) by skrll
Branches: nick-csl-alignment
Diff to: previous 1.28.2.2: preferred, colored; branchpoint 1.28: preferred, colored
Changes since revision 1.28.2.2: +28 -37 lines
Sync with HEAD.

Revision 1.31: download - view: text, markup, annotated - select for diffs
Thu Aug 16 14:53:45 2007 UTC (17 years, 3 months ago) by ad
Branches: MAIN
CVS tags: nick-csl-alignment-base4, nick-csl-alignment-base3
Branch point for: matt-armv6
Diff to: previous 1.30: preferred, colored
Changes since revision 1.30: +22 -31 lines
One more micro-optimization..

Revision 1.30: download - view: text, markup, annotated - select for diffs
Thu Aug 16 13:54:17 2007 UTC (17 years, 3 months ago) by ad
Branches: MAIN
Diff to: previous 1.29: preferred, colored
Changes since revision 1.29: +8 -8 lines
Trim fat off libpthread internal spinlock operations. Makes a mesurable
improvement across the board.

Revision 1.28.2.2: download - view: text, markup, annotated - select for diffs
Wed Aug 15 13:46:53 2007 UTC (17 years, 3 months ago) by skrll
Branches: nick-csl-alignment
Diff to: previous 1.28.2.1: preferred, colored; branchpoint 1.28: preferred, colored
Changes since revision 1.28.2.1: +62 -62 lines
Sync with HEAD.

Revision 1.29.2.2: download - view: text, markup, annotated - select for diffs
Sat Aug 4 13:37:50 2007 UTC (17 years, 4 months ago) by ad
Branches: matt-mips64
Diff to: previous 1.29.2.1: preferred, colored; branchpoint 1.29: preferred, colored; next MAIN 1.30: preferred, colored
Changes since revision 1.29.2.1: +486 -0 lines
Some significant performance improvements, and a fix for a race with pthread
detach/join.

- Make mutex acquire spin for a short time, as done with spinlocks.
- Make the number of spins controllable with the env var PTHREAD_NSPINS.
- Reduce the amount of time that libpthread internal spinlocks are held.
- Rely more on the barrier effects of park/unpark to avoid taking spinlocks.
- Simplify the locking around pthreads and the global queues.
- Align per-thread sync data on a 128 byte boundary.
- Offset thread stacks by a small amount to try and reduce cache thrash.

Revision 1.29.2.1
Sat Aug 4 13:37:49 2007 UTC (17 years, 4 months ago) by ad
Branches: matt-mips64
FILE REMOVED
Changes since revision 1.29: +0 -486 lines
file pthread_mutex.c was added on branch matt-mips64 on 2007-08-04 13:37:50 +0000

Revision 1.29: download - view: text, markup, annotated - select for diffs
Sat Aug 4 13:37:49 2007 UTC (17 years, 4 months ago) by ad
Branches: MAIN
CVS tags: nick-csl-alignment-base2, matt-mips64-base
Branch point for: matt-mips64
Diff to: previous 1.28: preferred, colored
Changes since revision 1.28: +63 -63 lines
Some significant performance improvements, and a fix for a race with pthread
detach/join.

- Make mutex acquire spin for a short time, as done with spinlocks.
- Make the number of spins controllable with the env var PTHREAD_NSPINS.
- Reduce the amount of time that libpthread internal spinlocks are held.
- Rely more on the barrier effects of park/unpark to avoid taking spinlocks.
- Simplify the locking around pthreads and the global queues.
- Align per-thread sync data on a 128 byte boundary.
- Offset thread stacks by a small amount to try and reduce cache thrash.

Revision 1.28.2.1: download - view: text, markup, annotated - select for diffs
Wed Jul 18 13:36:19 2007 UTC (17 years, 4 months ago) by skrll
Branches: nick-csl-alignment
Diff to: previous 1.28: preferred, colored
Changes since revision 1.28: +7 -4 lines
Initial work on provided correctly aligned __cpu_simple_lock_t for hppa
and first attempt at adapting i386 to the changes.

More to come.

Revision 1.28: download - view: text, markup, annotated - select for diffs
Sat Mar 24 18:52:00 2007 UTC (17 years, 8 months ago) by ad
Branches: MAIN
CVS tags: nick-csl-alignment-base, hpcarm-cleanup
Branch point for: nick-csl-alignment
Diff to: previous 1.27: preferred, colored
Changes since revision 1.27: +3 -3 lines
- Test+branch is usually cheaper than making an indirect function call,
  so avoid making them.
- When parking an LWP on a condition variable, point the hint argument at
  the mutex's waiters queue. Chances are we will be awoken from that later.

Revision 1.27: download - view: text, markup, annotated - select for diffs
Tue Mar 20 23:33:10 2007 UTC (17 years, 8 months ago) by ad
Branches: MAIN
Diff to: previous 1.26: preferred, colored
Changes since revision 1.26: +33 -34 lines
- Maintain a per-thread pointer to the last mutex acquired by the app, to
  be used only as as a hint. Clear the pointer when releasing the mutex.
- When releasing a mutex, wake all waiters. Makes it possible to tranfer
  waiters from another object to a mutex.

Revision 1.26: download - view: text, markup, annotated - select for diffs
Mon Mar 5 23:56:18 2007 UTC (17 years, 9 months ago) by ad
Branches: MAIN
Diff to: previous 1.25: preferred, colored
Changes since revision 1.25: +7 -4 lines
Update to match changed pthread__park() interface.

Revision 1.25: download - view: text, markup, annotated - select for diffs
Fri Mar 2 18:53:52 2007 UTC (17 years, 9 months ago) by ad
Branches: MAIN
Diff to: previous 1.24: preferred, colored
Changes since revision 1.24: +3 -21 lines
Remove the PTHREAD_SA option. If M:N threads is reimplemented it's
better off done with a seperate library.

Revision 1.24: download - view: text, markup, annotated - select for diffs
Sun Dec 24 18:39:46 2006 UTC (17 years, 11 months ago) by ad
Branches: MAIN
Diff to: previous 1.23: preferred, colored
Changes since revision 1.23: +3 -3 lines
Fix bugs with and improve upon previous.

Revision 1.23: download - view: text, markup, annotated - select for diffs
Sat Dec 23 05:14:47 2006 UTC (17 years, 11 months ago) by ad
Branches: MAIN
Diff to: previous 1.22: preferred, colored
Changes since revision 1.22: +21 -12 lines
Conditionalised support for 1:1 threads. Needs associated kernel changes
and more work to be useful.

Revision 1.21.2.1: download - view: text, markup, annotated - select for diffs
Fri Aug 25 16:14:22 2006 UTC (18 years, 3 months ago) by ghen
Branches: abandoned-netbsd-4
Diff to: previous 1.21: preferred, colored; next MAIN 1.22: preferred, colored
Changes since revision 1.21: +6 -6 lines
Pull up following revision(s) (requested by wrstuden in ticket #52):
	lib/libpthread/pthread_mutex.c: revision 1.22
Close a window in which we can not notice a recently-slept-on-our
mutex thread, thus leaving a thread sleeping on an unlocked mutex.
Reviewed by myself and Christos.
Problem reported by Arne H. Juul, arnej at pvv dot ntnu dot no,
in PR 26208. This fix represents option 1 presented in the PR.

Revision 1.18.6.1.2.1: download - view: text, markup, annotated - select for diffs
Fri Aug 25 11:37:00 2006 UTC (18 years, 3 months ago) by ghen
Branches: netbsd-3-0
CVS tags: netbsd-3-0-3-RELEASE, netbsd-3-0-2-RELEASE
Diff to: previous 1.18.6.1: preferred, colored; next MAIN 1.18.6.2: preferred, colored
Changes since revision 1.18.6.1: +4 -4 lines
Pull up following revision(s) (requested by wrstuden in ticket #1474):
	lib/libpthread/pthread_mutex.c: revision 1.22
Close a window in which we can not notice a recently-slept-on-our
mutex thread, thus leaving a thread sleeping on an unlocked mutex.
Reviewed by myself and Christos.
Problem reported by Arne H. Juul, arnej at pvv dot ntnu dot no,
in PR 26208. This fix represents option 1 presented in the PR.

Revision 1.18.6.2: download - view: text, markup, annotated - select for diffs
Fri Aug 25 11:36:36 2006 UTC (18 years, 3 months ago) by ghen
Branches: netbsd-3
CVS tags: netbsd-3-1-RELEASE, netbsd-3-1-RC4, netbsd-3-1-RC3, netbsd-3-1-RC2, netbsd-3-1-1-RELEASE, netbsd-3-1
Diff to: previous 1.18.6.1: preferred, colored; branchpoint 1.18: preferred, colored; next MAIN 1.19: preferred, colored
Changes since revision 1.18.6.1: +6 -6 lines
Pull up following revision(s) (requested by wrstuden in ticket #1474):
	lib/libpthread/pthread_mutex.c: revision 1.22
Close a window in which we can not notice a recently-slept-on-our
mutex thread, thus leaving a thread sleeping on an unlocked mutex.
Reviewed by myself and Christos.
Problem reported by Arne H. Juul, arnej at pvv dot ntnu dot no,
in PR 26208. This fix represents option 1 presented in the PR.

Revision 1.22: download - view: text, markup, annotated - select for diffs
Tue Aug 22 21:46:09 2006 UTC (18 years, 3 months ago) by wrstuden
Branches: MAIN
CVS tags: wrstuden-fixsa-newbase, wrstuden-fixsa-base-1, wrstuden-fixsa-base, netbsd-4-base, netbsd-4-0-RELEASE, netbsd-4-0-RC5, netbsd-4-0-RC4, netbsd-4-0-RC3, netbsd-4-0-RC2, netbsd-4-0-RC1, netbsd-4-0-1-RELEASE, netbsd-4-0
Branch point for: wrstuden-fixsa, netbsd-4
Diff to: previous 1.21: preferred, colored
Changes since revision 1.21: +6 -6 lines
Close a window in which we can not notice a recently-slept-on-our
mutex thread, thus leaving a thread sleeping on an unlocked mutex.

Reviewed by myself and Christos.

Problem reported by Arne H. Juul, arnej at pvv dot ntnu dot no,
in PR 26208. This fix represents option 1 presented in the PR.

Revision 1.18.6.1: download - view: text, markup, annotated - select for diffs
Tue Nov 1 20:01:33 2005 UTC (19 years, 1 month ago) by jmc
Branches: netbsd-3
CVS tags: netbsd-3-1-RC1, netbsd-3-0-RELEASE, netbsd-3-0-RC6, netbsd-3-0-RC5, netbsd-3-0-RC4, netbsd-3-0-RC3, netbsd-3-0-RC2, netbsd-3-0-RC1, netbsd-3-0-1-RELEASE
Branch point for: netbsd-3-0
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +19 -2 lines
Pullup revs 1.20-1.21 (requested by chs in ticket #926)
 In pthread_mutex_lock_slow(), pthread_rwlock_timedrdlock() and sem_wait(),
 call pthread__start() if it hasn't already been called. this avoids
 an internal assertion from the library if these routines are used
 before any threads are created and they need to sleep.
 PR#20256, PR#24241, PR#25722, PR#26096

 Fix the interaction between sigtimedwait() and pthread_kill(),
 both waking up a sleeping thread and avoiding going to sleep if
 a signal is already pending. PR#30348

 In pthread_kill() and pthread_suspend_np(), return without doing anything
 f the target thread is a zombie.
 In all the functions that didn't do so already, verify a pthread_t before
 dereferencing it (under #ifdef ERRORCHECK, since these checks are not
 mandated by the standard).

 Starting the pthread library (ie. calling pthread__start()) before
 any threads are created turned out to be not such a good idea.
 there are stronger requirements on what has to work in a forked child
 while a process is still single-threaded. so take all that stuff
 back out and fix the problems with single-threaded programs that
 are linked with libpthread differently, by checking if the library
 has been started and doing completely different stuff if it hasn't been:
 - for pthread_rwlock_timedrdlock(), just fail with EDEADLK immediately.
 - for sem_wait(), the only thing that can unlock the semaphore is a
 signal handler, so use sigsuspend() to wait for a signal.
 - for pthread_mutex_lock_slow(), just go into an infinite loop
 waiting for signals.

 If mlock() fails in pthread_create(), return EAGAIN instead of
 failing an assertion.

Revision 1.21: download - view: text, markup, annotated - select for diffs
Wed Oct 19 02:15:03 2005 UTC (19 years, 1 month ago) by chs
Branches: MAIN
CVS tags: abandoned-netbsd-4-base
Branch point for: abandoned-netbsd-4
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +18 -7 lines
starting the pthread library (ie. calling pthread__start()) before
any threads are created turned out to be not such a good idea.
there are stronger requirements on what has to work in a forked child
while a process is still single-threaded.  so take all that stuff
back out and fix the problems with single-threaded programs that
are linked with libpthread differently, by checking if the library
has been started and doing completely different stuff if it hasn't been:
 - for pthread_rwlock_timedrdlock(), just fail with EDEADLK immediately.
 - for sem_wait(), the only thing that can unlock the semaphore is a
   signal handler, so use sigsuspend() to wait for a signal.
 - for pthread_mutex_lock_slow(), just go into an infinite loop
   waiting for signals.

I also noticed that there's a "sem2" test that has never worked in its
single-threaded form.  the problem there is that a signal handler tries
to take a sem_t interlock which is already held when the signal is received.
fix this too, by adding a single-threaded case for sig_trywait() that
blocks signals instead of using the userland interlock.

Revision 1.20: download - view: text, markup, annotated - select for diffs
Sun Oct 16 00:07:24 2005 UTC (19 years, 1 month ago) by chs
Branches: MAIN
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +8 -2 lines
in pthread_mutex_lock_slow(), pthread_rwlock_timedrdlock() and sem_wait(),
call pthread__start() if it hasn't already been called.  this avoids
an internal assertion from the library if these routines are used
before any threads are created and they need to sleep.
fixes PR 20256, PR 24241, PR 25722, PR 26096.

Revision 1.19: download - view: text, markup, annotated - select for diffs
Sat Jul 16 23:14:53 2005 UTC (19 years, 4 months ago) by nathanw
Branches: MAIN
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +12 -3 lines
Add cancellation protection to pthread_once() as per the standard; if
the once routine is cancelled, the effect on once_control is as if
pthread_once() was never called.

Bug report and fix from PR lib/30734.

Revision 1.18: download - view: text, markup, annotated - select for diffs
Sun Mar 14 01:19:42 2004 UTC (20 years, 9 months ago) by cl
Branches: MAIN
CVS tags: netbsd-3-base, netbsd-2-base, netbsd-2-1-RELEASE, netbsd-2-1-RC6, netbsd-2-1-RC5, netbsd-2-1-RC4, netbsd-2-1-RC3, netbsd-2-1-RC2, netbsd-2-1-RC1, netbsd-2-1, netbsd-2-0-base, netbsd-2-0-RELEASE, netbsd-2-0-RC5, netbsd-2-0-RC4, netbsd-2-0-RC3, netbsd-2-0-RC2, netbsd-2-0-RC1, netbsd-2-0-3-RELEASE, netbsd-2-0-2-RELEASE, netbsd-2-0-1-RELEASE, netbsd-2-0, netbsd-2
Branch point for: netbsd-3
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +8 -3 lines
add libpthread part of concurrency support for SA on MP systems
- enable concurrency according to environment variable PTHREAD_CONCURRENCY
- add idle VP wakeup if there are additional jobs and idle VPs
- make reidlequeue per VP
- enable spinning for locks
- fix race condition in alarm processing
- fix race condition in mutex locking
- make debugging output line buffered and add VP prefix to debug lines

Revision 1.17: download - view: text, markup, annotated - select for diffs
Mon Nov 24 23:54:13 2003 UTC (21 years ago) by cl
Branches: MAIN
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +5 -7 lines
Update mutex/rwlock/sem code to match recent change in cond code.

Revision 1.16: download - view: text, markup, annotated - select for diffs
Tue May 27 15:22:56 2003 UTC (21 years, 6 months ago) by christos
Branches: MAIN
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +3 -2 lines
add missing notreached lint comment.

Revision 1.15: download - view: text, markup, annotated - select for diffs
Fri May 16 21:28:26 2003 UTC (21 years, 7 months ago) by nathanw
Branches: MAIN
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +8 -4 lines
Separately report unlocking an unlocked mutex and unlocking a mutex
owned by another thread.

Revision 1.14: download - view: text, markup, annotated - select for diffs
Wed Apr 23 19:36:12 2003 UTC (21 years, 7 months ago) by nathanw
Branches: MAIN
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +22 -13 lines
Use pthread__error() instead of pthread__abort().

Revision 1.13: download - view: text, markup, annotated - select for diffs
Fri Apr 18 21:36:38 2003 UTC (21 years, 7 months ago) by nathanw
Branches: MAIN
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +30 -66 lines
More agressive assertions. Change a number of detected conditions, which
officially have undefined behavior, from returning an error code to raising
an assertion failure.
Also, don't bother to explicitly test for (illegal) null pointers and return
an error; they'll bomb out soon enough.

Revision 1.12: download - view: text, markup, annotated - select for diffs
Wed Apr 16 18:59:12 2003 UTC (21 years, 8 months ago) by nathanw
Branches: MAIN
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +2 -5 lines
pthread_mutex_trylock(): It's not an error to call trylock() on a
mutex already locked by the calling thread, even for non-recursive
mutexes.

Revision 1.11: download - view: text, markup, annotated - select for diffs
Wed Apr 16 18:30:43 2003 UTC (21 years, 8 months ago) by nathanw
Branches: MAIN
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +3 -3 lines
When a thread sleeps on a mutex or cv, have it put itself on the
front of the sleep queue rather than the back. This is more
cache-friendly behavior and within the (lack of) constraints on wakeup
ordering imposed on equal-priority threads.

Revision 1.10: download - view: text, markup, annotated - select for diffs
Sat Mar 8 08:03:35 2003 UTC (21 years, 9 months ago) by lukem
Branches: MAIN
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +3 -1 lines
add __RCSID()

Revision 1.9: download - view: text, markup, annotated - select for diffs
Sat Feb 15 00:52:18 2003 UTC (21 years, 9 months ago) by nathanw
Branches: MAIN
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +1 -2 lines
Remove unnecessary inclusion of <assert.h>.

Revision 1.8: download - view: text, markup, annotated - select for diffs
Fri Jan 31 02:55:00 2003 UTC (21 years, 10 months ago) by nathanw
Branches: MAIN
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +41 -21 lines
Mutex tuneup.

 * Use a double-checked locking technique to avoid taking
   the interlock in pthread_mutex_unlock().

 * In pthread_mutex_lock() and pthread_mutex_trylock(), only store the
   stack pointer, not the thread ID, in ptm_owner. Do the translation
   to a thread ID in the slow-lock, errorcheck, and recursive mutex
   cases rather than in the common path.

 * Juggle where pthread__self() is called, to move it out of the fast path.

Overall, this means that neither pthread_self() nor
pthread_spin[un]lock() are used in the course of locking and unlocking
an uncontested mutex. Speeds up the fast path by 40-50%, and
eliminates about 98% of spinlocks used by a couple of large threaded
applications.

(Still a GET_MUTEX_PRIVATE() in the fast path... perhaps the type
should be in the main body of the mutex).

Revision 1.7: download - view: text, markup, annotated - select for diffs
Mon Jan 27 21:01:00 2003 UTC (21 years, 10 months ago) by nathanw
Branches: MAIN
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +8 -3 lines
Add debug counters for mutex and condvar operations.

Revision 1.6: download - view: text, markup, annotated - select for diffs
Wed Jan 22 13:49:14 2003 UTC (21 years, 10 months ago) by scw
Branches: MAIN
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +2 -1 lines
Need to include <string.h> for memcmp() prototype.

Revision 1.5: download - view: text, markup, annotated - select for diffs
Sun Jan 19 21:42:09 2003 UTC (21 years, 10 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +2 -2 lines
Fix typo.

Revision 1.4: download - view: text, markup, annotated - select for diffs
Sun Jan 19 20:46:12 2003 UTC (21 years, 10 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +5 -1 lines
Add mutexattr_init(), mutexattr_destroy(), and mutexattr_settype() (recursive
mutexes are used by the X libraries).

Revision 1.3: download - view: text, markup, annotated - select for diffs
Sat Jan 18 18:45:55 2003 UTC (21 years, 10 months ago) by christos
Branches: MAIN
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +2 -2 lines
de-lint

Revision 1.2: download - view: text, markup, annotated - select for diffs
Sat Jan 18 10:34:16 2003 UTC (21 years, 10 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +458 -0 lines
Merge the nathanw_sa branch.

Revision 1.1.2.20: download - view: text, markup, annotated - select for diffs
Tue Jan 14 17:10:53 2003 UTC (21 years, 11 months ago) by thorpej
Branches: nathanw_sa
CVS tags: nathanw_sa_end
Diff to: previous 1.1.2.19: preferred, colored; branchpoint 1.1: preferred, colored; next MAIN 1.2: preferred, colored
Changes since revision 1.1.2.19: +7 -6 lines
Move a comment to a more logical location.

Revision 1.1.2.19: download - view: text, markup, annotated - select for diffs
Mon Jan 13 22:50:10 2003 UTC (21 years, 11 months ago) by thorpej
Branches: nathanw_sa
Diff to: previous 1.1.2.18: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.18: +208 -18 lines
Implement recursive and errorcheck mutexes.

Revision 1.1.2.18: download - view: text, markup, annotated - select for diffs
Thu Jan 9 19:27:52 2003 UTC (21 years, 11 months ago) by thorpej
Branches: nathanw_sa
Diff to: previous 1.1.2.17: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.17: +7 -7 lines
Remove trailing semicolon from __strong_alias().

Revision 1.1.2.17: download - view: text, markup, annotated - select for diffs
Wed Jan 8 19:34:22 2003 UTC (21 years, 11 months ago) by thorpej
Branches: nathanw_sa
Diff to: previous 1.1.2.16: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.16: +9 -1 lines
Rewrite the way libpthread provides thread primitives to libc, using
strong and weak aliases (the way cancelation points are handled).

Work around lame Unix static library semantics which could cause
the wrong thread primitives or cancelation point functions to be
included in a statically-linked program.

THIS IS AN ABI CHANGE.  People running the nathanw_sa branch should
ensure that their libc and libpthread are in sync after updating.

Revision 1.1.2.16: download - view: text, markup, annotated - select for diffs
Mon Dec 30 22:24:35 2002 UTC (21 years, 11 months ago) by thorpej
Branches: nathanw_sa
Diff to: previous 1.1.2.15: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.15: +7 -7 lines
Add support for using RAS lock primitives on uniprocessors where
RAS is available.

Revision 1.1.2.15: download - view: text, markup, annotated - select for diffs
Sat Oct 26 02:17:44 2002 UTC (22 years, 1 month ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.1.2.14: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.14: +5 -3 lines
Whitespace in comments.

Revision 1.1.2.14: download - view: text, markup, annotated - select for diffs
Wed Oct 23 18:23:12 2002 UTC (22 years, 1 month ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.1.2.13: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.13: +9 -18 lines
Revert previous. There's still a race condition whose avoidance requires
checking the blocked queue with the interlock held.

Revision 1.1.2.13: download - view: text, markup, annotated - select for diffs
Tue Oct 22 21:56:00 2002 UTC (22 years, 1 month ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.1.2.12: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.12: +19 -10 lines
Speed up pthread_mutex_unlock() similarly to what was done to
pthread_mutex_lock(): heavily optimize for the case of a mutex with no
waiters, and defer the waiter case to a separate function.

Uncontested mutexes now no longer use library spin locks.

Revision 1.1.2.12: download - view: text, markup, annotated - select for diffs
Fri Oct 4 00:26:52 2002 UTC (22 years, 2 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.1.2.11: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.11: +19 -13 lines
Tweak pthread_mutex_lock(): Move the "slow" code to another function
and only call pthread_self() inside that function.

Don't use pthread_self() to track ownership; just stash the stack
pointer. Translation to thread IDs can be done post-mortem if
necessary (Thanks to Greg Hudson for pointing this out).

Revision 1.1.2.11: download - view: text, markup, annotated - select for diffs
Fri Apr 26 17:45:57 2002 UTC (22 years, 7 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.1.2.10: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.10: +2 -1 lines
Track the synchronization object being slept on.

Revision 1.1.2.10: download - view: text, markup, annotated - select for diffs
Thu Apr 11 02:51:36 2002 UTC (22 years, 8 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.1.2.9: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.9: +1 -7 lines
Revert weak aliases.

Revision 1.1.2.9: download - view: text, markup, annotated - select for diffs
Mon Mar 25 03:57:29 2002 UTC (22 years, 8 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.1.2.8: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.8: +2 -2 lines
Oops, that function is pthread_once(), not pthread_mutex_once().

Revision 1.1.2.8: download - view: text, markup, annotated - select for diffs
Mon Mar 25 03:46:01 2002 UTC (22 years, 8 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.1.2.7: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.7: +8 -1 lines
Provide interfaces to libc.

Revision 1.1.2.7: download - view: text, markup, annotated - select for diffs
Mon Jan 28 19:05:49 2002 UTC (22 years, 10 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.1.2.6: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.6: +14 -2 lines
Cancellation support.
This includes implementing pthread_cancel() and pthread_testcancel(),
making pthread_join() and pthread_cond_wait() cancellation points,
introducing new states to distinguish waiting on a sleep queue
from waiting in the kernel, and introducing a locking protocol around
changing a thread's run state.

Revision 1.1.2.6: download - view: text, markup, annotated - select for diffs
Wed Aug 8 16:36:29 2001 UTC (23 years, 4 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.1.2.5: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.5: +18 -1 lines
Implement pthread_once().

Revision 1.1.2.5: download - view: text, markup, annotated - select for diffs
Wed Jul 25 23:53:01 2001 UTC (23 years, 4 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.1.2.4: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.4: +45 -12 lines
Stadardize and clean up use of ERRORCHECK.
Implement pthread_{cond,mutex}attr_{init,destroy} and make the relevant
functions check for their validity.
(No non-default attribute values are supported, but these interfaces
 are required anyway).

Revision 1.1.2.4: download - view: text, markup, annotated - select for diffs
Tue Jul 24 21:21:12 2001 UTC (23 years, 4 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.1.2.3: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.3: +12 -15 lines
Remove some unnecessary includes.
Prefix some application-visible preprocessor symbols with an underscore.

Modify pthread_mutex_unlock() to only wake up one waiter.

Revision 1.1.2.3: download - view: text, markup, annotated - select for diffs
Fri Jul 13 02:42:38 2001 UTC (23 years, 5 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.1.2.2: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.2: +37 -1 lines
Note copyright.
Standardize RCS IDs.

Revision 1.1.2.2: download - view: text, markup, annotated - select for diffs
Fri Jul 13 02:25:20 2001 UTC (23 years, 5 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.1.2.1: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.1: +72 -77 lines
Convert to new queue type.

Remove a level of indirection in the definition and use of
pthread_mutex_t.

Add a note about Pthreads memory visibility rules.

Use an optimistic simple-lock approach for locking mutexes. Should be
faster in the common case.

Revision 1.1.2.1: download - view: text, markup, annotated - select for diffs
Mon Mar 5 23:51:57 2001 UTC (23 years, 9 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +159 -0 lines
The beginnings of a scheduler activations-based pthread library.

Revision 1.1
Mon Mar 5 23:51:57 2001 UTC (23 years, 9 months ago) by nathanw
Branches: MAIN
CVS tags: nathanw_sa_before_merge
Branch point for: nathanw_sa
FILE REMOVED
file pthread_mutex.c was initially added on branch nathanw_sa.

Diff request

This form allows you to request diffs between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

Log view options

CVSweb <webmaster@jp.NetBSD.org>