#
d333bb5f |
| 06-Feb-2007 |
ad <ad@NetBSD.org> |
Build without sys/sa.h present.
|
#
ded26025 |
| 24-Dec-2006 |
ad <ad@NetBSD.org> |
Fix bugs with and improve upon previous.
|
#
1ac6a89b |
| 23-Dec-2006 |
ad <ad@NetBSD.org> |
Conditionalised support for 1:1 threads. Needs associated kernel changes and more work to be useful.
|
#
41cc94b9 |
| 03-Oct-2006 |
yamt <yamt@NetBSD.org> |
remove unused IDLESPINS.
|
#
0e675542 |
| 19-Oct-2005 |
chs <chs@NetBSD.org> |
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
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.
show more ...
|
#
2415c56e |
| 16-Oct-2005 |
chs <chs@NetBSD.org> |
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 routine
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.
show more ...
|
#
916de878 |
| 26-Feb-2005 |
nathanw <nathanw@NetBSD.org> |
Keep the kernel updated with signal action signal masks (act.sa_mask) until threads are started, since before that the traditional signal invocation method will be used. Fixes regress/lib/libpthread/
Keep the kernel updated with signal action signal masks (act.sa_mask) until threads are started, since before that the traditional signal invocation method will be used. Fixes regress/lib/libpthread/sigmask2.
show more ...
|
#
2b4ccae3 |
| 12-Oct-2004 |
mycroft <mycroft@NetBSD.org> |
Remove pt_blockuc. If the debugger attempts to muck with the state of a blocked thread, return an error; this should be done through ptrace(2).
|
#
3f53b40c |
| 24-Aug-2004 |
nathanw <nathanw@NetBSD.org> |
Local whitespace police.
|
#
15c2d914 |
| 24-Aug-2004 |
nathanw <nathanw@NetBSD.org> |
Add a flag that indicates that a thread took a signal.
|
#
0e6c93b9 |
| 25-Jun-2004 |
drochner <drochner@NetBSD.org> |
const'ify the arguments to pthread__assertfunc and _errorfunc; needed because the __func__ pseudo-var is strictly "const*" in gcc-3.4
|
#
f2f10664 |
| 14-Mar-2004 |
cl <cl@NetBSD.org> |
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 V
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
show more ...
|
#
0a6afcc7 |
| 02-Feb-2004 |
nathanw <nathanw@NetBSD.org> |
Rename pt_stacksize, pt_stacksize_lg, and pt_stackmask to pthread_*. External symbols can't start with pt_, as that is in the application namespace.
|
#
33622a59 |
| 02-Jan-2004 |
cl <cl@NetBSD.org> |
userland part of no-syscall upcall stack return
- add pt_stackinfo to struct __pthread_st - add pthread__stackinfo_offset returning the offset from ss_sp to pt_stackinfo - pass stackinfo_offset to
userland part of no-syscall upcall stack return
- add pt_stackinfo to struct __pthread_st - add pthread__stackinfo_offset returning the offset from ss_sp to pt_stackinfo - pass stackinfo_offset to sa_register and set SA_FLAG_STACKINFO to make the kernel use it - call pthread__sa_recycle in pthread__resolve_locks; g/c recycleq and pthread__recycle_bulk - return stack in pthread__sa_recycle by incrementing sasi_stackgen - make pthread__sa_recycle debugging output formatting conditional on pthread__debug_newline
show more ...
|
#
82b6b2db |
| 31-Dec-2003 |
cl <cl@NetBSD.org> |
Handle block/unblock for threads in critical section without sa_unblockyield.
XXX g/c sa_unblockyield in kernel later
|
#
2c9b7b1e |
| 27-Nov-2003 |
cl <cl@NetBSD.org> |
Set default stack size to the current limit on the stack size as set with the shell's command to change limits. Make the PTHREAD_STACKSIZE environment variable override the default stack size. The
Set default stack size to the current limit on the stack size as set with the shell's command to change limits. Make the PTHREAD_STACKSIZE environment variable override the default stack size. The old fixed stack size behaviour can be enable with PT_FIXEDSTACKSIZE_LG when building libpthread.
show more ...
|
#
5077d05f |
| 25-Nov-2003 |
christos <christos@NetBSD.org> |
GC sigcontext<->mcontext code and __HAVE_SIGINFO. All supported archs have siginfo implemented.
|
#
38b1c6f4 |
| 09-Nov-2003 |
christos <christos@NetBSD.org> |
Add:
int pthread_attr_setcreatesuspend_np(pthread_attr_t *); int pthread_suspend_np(pthread_t); int pthread_resume_np(pthread_t);
needed for java. Approved and fixed by cl.
|
#
138df80b |
| 12-Sep-2003 |
christos <christos@NetBSD.org> |
convert to use siginfo/ucontext style of signal delivery instead of sigcontext. Approved by nathanw.
|
#
89d0cfd2 |
| 07-Sep-2003 |
cl <cl@NetBSD.org> |
Remove possible race condition in upcall recycling.
|
#
329747fb |
| 21-Jul-2003 |
nathanw <nathanw@NetBSD.org> |
Add a lock on the pt_flags field.
|
#
ec2c1698 |
| 18-Jul-2003 |
nathanw <nathanw@NetBSD.org> |
pthread.c was getting a bit unwieldly. Move pthread_attr stuff out into a new file, and put the shared private structure definition in pthread_int.h.
|
#
deb18e9d |
| 17-Jul-2003 |
nathanw <nathanw@NetBSD.org> |
Adapt to internal structure name changes.
Add a couple of useful flags and symbols.
|
#
2534cd2b |
| 26-Jun-2003 |
nathanw <nathanw@NetBSD.org> |
Introduce a new pointer, pt_trapuc, that stores thread context captured by the kernel. Separating this from pt_uc makes it possible to avoid a race condition in pt_uc management near the STACK_SWITCH
Introduce a new pointer, pt_trapuc, that stores thread context captured by the kernel. Separating this from pt_uc makes it possible to avoid a race condition in pt_uc management near the STACK_SWITCH part of pthread__switch() and pthread__locked_switch().
Remove pt_sleepuc pointer, which was made obsolete by the previous round of UC juggling but still present in the assembler files.
show more ...
|
#
877f8985 |
| 06-Jun-2003 |
nathanw <nathanw@NetBSD.org> |
Tiny bit of infrastructure for ABI-supported thread-ID storage.
|