summaryrefslogtreecommitdiffstats
path: root/lib/libthr
Commit message (Collapse)AuthorAgeFilesLines
...
* If a thread who's name is being set is not the current thread, use macrosdavidxu2007-04-051-2/+2
| | | | | | | THR_THREAD_LOCK and THR_THREAD_UNLOCK instead, this should fix wrong lock level problem. Bug reported by: ed dot maste at gmail dot com
* Remove 3rd clause, renumber, ok per emailimp2007-01-1221-88/+22
|
* Insert mutex at tail if it has highest ceiling.davidxu2007-01-051-1/+1
|
* Oops, don't corrupt the list.davidxu2007-01-051-1/+1
|
* Check if the PP mutex is recursive, if we have already locked it, place thedavidxu2007-01-051-9/+28
| | | | mutex in right order sorted by priority ceiling.
* get LIBPTHREAD_ADAPTIVE_SPIN early, so it can be used for some globaldavidxu2006-12-201-2/+5
| | | | mutexes.
* Check environment variable PTHREAD_ADAPTIVE_SPIN, if it is set, usedavidxu2006-12-205-1/+8
| | | | it as a default spin cycle count.
* - Remove variable _thr_scope_system, all threads are system scope.davidxu2006-12-1510-25/+19
| | | | | - Rename _thr_smp_cpus to boolean variable _thr_is_smp. - Define CPU_SPINWAIT macro for each arch, only X86 supports it.
* Create inline function _thr_umutex_trylock2 to only try one atomicdavidxu2006-12-142-3/+11
| | | | | operation, if it is failed, we call syscall directly, this saves one atomic operation per lock contention.
* Correctly check failed syscall.davidxu2006-12-121-10/+10
|
* Move checking for c_has_waiters into low level _thr_ucond_signal anddavidxu2006-12-122-16/+12
| | | | | | | _thr_ucond_broadcast, clear condition variable pointer in cancellation info after returing from _thr_ucond_wait, since kernel has already dropped the internal lock, so we don't need to unlock it in cancellation handler again.
* test cancel_pending to save a thr_wake call in some specical cases.davidxu2006-12-061-1/+1
|
* _thr_ucond_wait drops lock, we should pick it up again.davidxu2006-12-051-0/+1
|
* the c_has_waiters is lazily updated, temporarily disable the falsedavidxu2006-12-051-0/+2
| | | | alarm code.
* Use ucond to implement barrier.davidxu2006-12-052-8/+10
|
* Add _thr_ucond_init().davidxu2006-12-052-3/+10
|
* Tweak _thr_cancel_leave_defer a bit to fix a possible race.davidxu2006-12-051-3/+7
|
* Fix typo, I was using a wrong header file, and the typo is not detecteddavidxu2006-12-041-1/+1
| | | | by compiler.
* Use kernel provided userspace condition variable to implement pthreaddavidxu2006-12-046-96/+105
| | | | condition variable.
* If a thread was detached, return EINVAL instead, the error codedavidxu2006-11-281-1/+1
| | | | | | | | is also returned by pthread_detach() if a thread was already detached, the error code was already documented: > [EINVAL] The implementation has detected that the value speci- > fied by thread does not refer to a joinable thread.
* - When building world WITHOUT_LIBPTHREAD, link libthr to libpthread.ru2006-11-261-5/+5
| | | | | - Don't build ngctl(8) and cached(8) if threading libs aren't built. - Fix various issues in a cached(8) makefile.
* Eliminate atomic operations in thread cancellation functions, it shoulddavidxu2006-11-2412-213/+176
| | | | reduce overheads of cancellation points.
* Move code calculating new inherited priority into single function.davidxu2006-11-111-30/+21
|
* Don't inherit THR_FLAGS_NEED_SUSPEND for child process, child processdavidxu2006-10-141-0/+2
| | | | | only has one thread, setting the flag can cause the thread to be suspended and no another thread will resume it.
* o Make _thr_umutex_init a function.davidxu2006-10-132-21/+23
| | | | | | o Eliminate unused parameter for some functions. o Convert type of first parameter to void * for _thr_umtx_wait and _thr_umtx_wake.
* Use type pthread_state for thread state.davidxu2006-10-131-1/+1
|
* use rtprio_thread system call to get or set thread priority.davidxu2006-09-217-16/+90
|
* Use return value of _thr_umutex_lock instead of using zero.davidxu2006-09-081-2/+1
|
* Replace internal usage of struct umtx with umutex which can supportsdavidxu2006-09-0614-158/+94
| | | | real-time if we want, no functionality is changed.
* Same as pthread_setschedparam, use sizeof(struct sched_param) instead.davidxu2006-09-051-2/+2
|
* Pass correct parameter size.davidxu2006-09-051-2/+2
|
* Stylize: avoid using a global register variable.marcel2006-09-012-6/+8
|
* Rename TLS_TP_OFFSET back to TP_OFFSET. The former clashes with rtld.marcel2006-09-011-3/+3
|
* Stylize.marcel2006-09-012-17/+11
|
* Stylize.marcel2006-08-311-6/+2
|
* TLS fixes:marcel2006-08-312-4/+8
| | | | | | | o The TLS pointer (r2) points 0x7000 after the *end* of the TCB. o _rtld_allocate_tls() gets a pointer to the current TCB, not the current TLS pointer. o _rtld_free_tls() gets the size of the TCB structure.
* Fix harmless bug: sizeof(tcb) equals sizeof(void*) not sizeof(struct tcb).marcel2006-08-311-1/+1
| | | | The argument is (currently) not used by _rtld_free_tls().
* o Set TP using inline assembly to avoid dead code elimination.marcel2006-08-301-5/+3
| | | | o Eliminate _tcb.
* Remove unused file.davidxu2006-08-291-59/+0
|
* pthread_sigmask is in thr_sig.c, remove this file.davidxu2006-08-281-52/+0
|
* Kill unused files.davidxu2006-08-282-187/+0
|
* Use umutex APIs to implement pthread_mutex, member pp_mutexq is addeddavidxu2006-08-284-73/+116
| | | | | | into pthread structure to keep track of locked PTHREAD_PRIO_PROTECT mutex, no real mutex code is changed, the mutex locking and unlocking code should has same performance as before.
* Add umutex APIs.davidxu2006-08-282-0/+92
|
* Remove alpha left-overs.ru2006-08-224-135/+2
|
* Axe unused member field.davidxu2006-08-082-12/+2
|
* Get number of CPUs and ignore spin count on single processor machine.davidxu2006-08-083-6/+15
|
* 1. Don't override underscore version of aio_suspend(), system(),davidxu2006-07-254-100/+191
| | | | | | | | | | wait(), waitpid() and usleep(), they are internal versions and should not be cancellation points. 2. Make wait3() as a cancellation point. 3. Move raise() and pause() into file thr_sig.c. 4. Add functions _sigsuspend, _sigwait, _sigtimedwait and _sigwaitinfo, remove SIGCANCEL bit in wait-set for those functions, the signal is used internally to implement thread cancellation.
* Unexpand two TAILQ_FOREACH_SAFE cases.delphij2006-07-172-4/+2
| | | | Ok'ed by: davidxu
* Caching scheduling policy and priority in userland, a critical but baddlydavidxu2006-07-135-20/+50
| | | | | written application is frequently changing thread priority for SCHED_OTHER policy.
* Use thr_setscheduler, thr_getscheduler and thr_setschedparam to implementdavidxu2006-07-134-26/+15
| | | | pthread functions.
OpenPOWER on IntegriCloud