davidxu
6ee36bbb6d
Add locking support for rtld.
2006-03-25 04:49:07 +00:00
davidxu
eb9bdb4259
set an upper limit for thread structures which can be allocated.
2006-03-24 04:34:06 +00:00
davidxu
020594940d
Set default contention scope to system.
2006-03-20 03:14:14 +00:00
ru
5f8b6d3c5a
Convert NO_PROFILE and NO_LIB32 to new style.
2006-03-18 21:37:05 +00:00
davidxu
d119bdaa7a
Remove mqueue and timer, now they are in librt.
2006-03-08 23:47:04 +00:00
deischen
e586a0042e
Add some more pthread stubs so that librt can use them.
...
The thread jump table has been resorted, so you need to
keep libc, libpthread, and libthr in sync.
Submitted by: xu
2006-03-05 18:10:28 +00:00
davidxu
6fdf2b7d81
Reimplement mutex_init to get rid of compile warning.
2006-02-28 06:06:19 +00:00
davidxu
bb43155dbb
Disable POSIX SIGEV_THREAD notification support, soon we will have a common
...
library which can be reused both for libthr and libpthread.
2006-02-22 02:52:22 +00:00
davidxu
91fda076fb
Read cycle count before sending signal, this fixes a userland thread
...
suspension bug.
MFC after: 3 days
2006-02-20 09:02:40 +00:00
davidxu
70ea4e1323
Rework last change of pthread_once, create a function _thr_once_init to
...
reinitialize its internal locks.
2006-02-15 23:05:03 +00:00
davidxu
44a8ce5006
After fork(), reinitialize internal locks for pthread_once().
2006-02-15 13:41:02 +00:00
davidxu
08b1c5c928
Now, thread name is stored in kernel, userland no longer has to keep it.
2006-02-05 03:04:54 +00:00
davidxu
118990614c
use syscall thr_set_name to implement pthread_set_name_np.
2006-02-05 02:26:17 +00:00
davidxu
3172ccca0f
Add missing symbol pthread_set_name_np.
2006-01-23 06:11:23 +00:00
davidxu
97a1cdabb8
Eliminate unused code.
2006-01-16 05:33:48 +00:00
davidxu
aedf24a684
Enable mutex inheritance code in mutex_fork, I forgot to turn on it.
...
while here, add some comments about process shared mutex.
2006-01-14 11:33:43 +00:00
jasone
e30d92806f
Increase the number of spinlocks, since libc's malloc implementation is
...
about to significantly increase the number of spinlocks used.
Approved by: markm (mentor)
2006-01-13 06:14:04 +00:00
jasone
3668a2e494
In preparation for a new malloc implementation:
...
* Add posix_memalign().
* Move calloc() from calloc.c to malloc.c. Add a calloc() implementation in
rtld-elf in order to make the loader happy (even though calloc() isn't
used in rtld-elf).
* Add _malloc_prefork() and _malloc_postfork(), and use them instead of
directly manipulating __malloc_lock.
Approved by: phk, markm (mentor)
2006-01-12 07:28:21 +00:00
davidxu
84187b477c
The thr_new sysscall was already in libc, don't generate it.
2006-01-11 06:10:05 +00:00
davidxu
1218aa5627
Use macro STATIC_LIB_REQUIRE to declare a symbol should be linked into
...
static binary.
2006-01-10 04:53:03 +00:00
davidxu
36bb818343
Rescue pthread_set_name_np for compatible reason, remove unused code.
2006-01-09 08:07:22 +00:00
davidxu
8798f9bcec
Tweak macro THR_LOCK_RELEASE a bit for non-PTHREAD_INVARIANTS case.
2006-01-09 07:32:22 +00:00
davidxu
db9594be6e
Return real detached state.
2006-01-09 03:59:51 +00:00
davidxu
6f27a53b6f
Fix a bug recently introduced, the _thread_active_count should be
...
decreased if thread can not be created.
2006-01-08 10:13:18 +00:00
davidxu
d1f7b6d605
Allow background threads to be suspended.
2006-01-08 01:49:31 +00:00
davidxu
4c4f339838
Try to reduce total time needed for suspending all threads,
...
first broadcast signals to all threads, then enter a wait loop.
2006-01-08 01:48:51 +00:00
davidxu
f04292bb19
Remove functions i386_get_gsbase and i386_set_gsbase, they were already
...
in libc.
2006-01-07 06:01:43 +00:00
davidxu
d6c88c0f27
Refine thread suspension code, now thread suspension is a blockable
...
operation, the caller is blocked util target threads are really
suspended, also avoid suspending a thread when it is holding a
critical lock.
Fix a bug in _thr_ref_delete which tests a never set flag.
2006-01-05 13:51:22 +00:00
davidxu
45180066f9
1. Add SIGEV_THREAD notification for mq_notify.
...
2. Reuse current timer code and abstract some common code to
to support both timer and mqueue.
2006-01-04 11:48:02 +00:00
davidxu
46ad9344c2
Remove in-progress wait code to sync with libpthread's behavior.
2006-01-03 13:30:23 +00:00
davidxu
2d34e45c94
Let _mutex_cv_lock call internal functiona mutex_lock_common.
2005-12-21 05:14:07 +00:00
davidxu
5ac55e9c46
Hide umtx API symbols as well.
2005-12-21 03:53:29 +00:00
davidxu
8d9e23fb51
1. Retire macro SCLASS, instead simply use language keyword and
...
put variables in thr_init.c.
2. Hide all global symbols which won't be exported.
2005-12-21 03:14:06 +00:00
davidxu
3e60ee73cb
Follow the mistake in libpthread, the first version name in libpthread
...
is LIBTHREAD_1_0, but really it should be LIBPTHREAD_1_0.
Fix it so libmap.conf works again (it was broken by recent versioning
code in rtld_elf).
2005-12-21 02:34:20 +00:00
davidxu
a8cc7e07c2
Clear return code to zero if joiner successfully waited joinee.
...
Bug reported by: jasone at connonware when using ports lang/onyx
MFC after: 3 days
2005-12-19 03:20:55 +00:00
davidxu
272f64aa70
Update copyright.
2005-12-17 09:42:45 +00:00
davidxu
7bdde27518
Remove unused _get_curthread() call.
2005-12-12 07:14:57 +00:00
davidxu
ae161ac239
Fix name compatible problem with POSIX standard. the sigval_ptr and
...
sigval_int really should be sival_ptr and sival_int.
Also sigev_notify_function accepts a union sigval value but not a
pointer.
2005-11-04 09:41:00 +00:00
davidxu
3e97a4d0bd
Remove a redundant _get_curthread() call.
2005-11-02 14:06:29 +00:00
davidxu
e623529523
In raise(), use a shortcut to directly send signal to current thread.
2005-11-02 13:52:48 +00:00
davidxu
326dbaf282
Fix some comments, eliminate a memory leak.
2005-11-01 13:05:47 +00:00
davidxu
e3fd454017
Use TIMERS_UNLOCK.
2005-11-01 07:05:32 +00:00
davidxu
185b13c547
Add code to handle timer_delete(). The timer wrapper code is completely
...
rewritten, now timers created with same sigev_notify_attributes will
run in same thread, this allows user to organize which timers can
run in same thread to save some thread resource.
2005-11-01 06:53:22 +00:00
davidxu
363ab5c566
Add thread exit handler in timer_loop to handle broken buggy code which
...
could lead to memory leak.
2005-10-30 23:59:01 +00:00
davidxu
77f9fea7ac
Add timer_create wrapper.
2005-10-30 03:16:30 +00:00
davidxu
2039945090
Remove unused variable.
...
Reviewed by: cognet
2005-10-29 13:40:31 +00:00
davidxu
3882c07f39
Kill unused variable declaration.
2005-10-29 03:08:43 +00:00
davidxu
912a374cd0
Link libthr to libpthread on Alpha and Sparc.
2005-10-27 10:21:23 +00:00
davidxu
3aca9ad9f9
Add experiment code to implement POSIX timer's SIGEV_THREAD notification.
2005-10-26 11:08:32 +00:00
davidxu
0929747005
Follow the change in kernel, joiner thread just waits at thread id
...
address, let kernel wake it up.
2005-10-26 07:11:43 +00:00