summaryrefslogtreecommitdiff
path: root/lib/librthread
AgeCommit message (Collapse)Author
2007-06-05_FD_LOCK/UNLOCK() is libpthread specific and not needed for librthread, soKurt Miller
isolate its usage to libpthread only and replace with generic non-static mutex support in the one place it is needed: - remove _FD_LOCK/UNLOCK from lseek and ftruncate in libc and make the functions weak so that libpthread can override with its own new versions that do the locking. - remove _thread_fd_lock/unlock() weak functions from libc and adjust libpthread for the change. - add generic _thread_mutex_lock/unlock/destroy() weak functions in libc to support non-static mutexes in libc and add libpthread and librthread implementations for them. libc can utilize non-static mutexes via the new _MUTEX_LOCK/UNLOCK/DESTROY() macros. Actually these new macros can support both static and non-static mutexes but currently only using them for non-static. - make opendir/closedir/readdir/readdir_r/seekdir/telldir() thread-safe for both thread libraries by using a non-static mutex in the struct _dirdesc (typedef DIR), utilizing it in the *dir functions and remove remaining and incorrect _FD_LOCK/UNLOCK() use in libc. - add comments to both thread libraries to indicate libc depends on the current implementation of static mutex initialization. suggested by marc@ - major bump libc and libpthread due to function removal, structure change and weak symbol conversions. okay marc@, tedu@
2007-05-25protect against races while initializing static mutexes. okay marc@ tedu@Kurt Miller
2007-05-18Register the locking hooks with ld.so.Artur Grabowski
drahn@ ok (long time ago)
2007-04-10when kevent fails, the errno is a lot more interesting to print than -1Ted Unangst
2007-04-10new lines in error messagesTed Unangst
2007-03-24rfork sh bits.Miod Vallat
2006-10-27two comment typos from tbertTed Unangst
2006-04-12make rthreads compile againHenning Brauer
pthreads header changed, char * -> const char *
2006-01-06When suspending, check the tid of the arg, not of ourselves, dohOtto Moerbeek
2006-01-06Initialize thread debug in _rthread_init. The debug verbosityMarco S Hyman
can be set in the environment using RTHREAD_DEBUG. ok, tedu@
2006-01-06guess it's time to remove the init printf; sturm found a port thatTed Unangst
didn't like it.
2006-01-05Use the system include <spinlock.h> to get the proper functionMarco S Hyman
prototype for _atomic_lock
2006-01-05In pthread_join(), check if we create a deadlock trying to joinOtto Moerbeek
with ourself and only free thread after a succesful join. ok marc@
2006-01-05Fixup stack, it needs 16 bytes headroom. Help from miod@ and drahn.Otto Moerbeek
ok drahn@
2006-01-05Remove redundant mprotect() calls (we're unmapping the region anyway)Otto Moerbeek
and check user stack for proper alignment. ok tedu@ marc@
2006-01-05move malloc lock to libc interface fileTed Unangst
2006-01-05add -Wstrict-prototypes -Wmissing-prototypes -Wsign-compareMarco S Hyman
Minor tweaks to compile with the above, primarily in fixing the conflicts between semaphore.h and rthread.h "i like the additional warnings" tedu@
2006-01-04Cleanup struct pthread and stack after thread exits. This version doesOtto Moerbeek
not use a separate reaper thread. ok tedu@ marc@
2006-01-04allow threads to be created in a detached stateMarco S Hyman
do not allow a join to a detached thread "it looks good" otto@
2006-01-02Don't call pthread_self()->tid when getthrid() will do fine.Otto Moerbeek
2006-01-01thread stack handling changes. Add guard zones and allow stackMarco S Hyman
size (and guard zone size) to be set using pthread_attr. Guard zones are specified in bytes, but implemented in terms of a page size. OK Otto@
2006-01-01Nicer implementation of pthread_main_np(), which avoids the spinlock.Otto Moerbeek
ok tedu@ marc@
2005-12-31Add "print debug foo" function safe to use in signal handlers, example:Marco S Hyman
_rthread_debug(3, "foo = %s", foo); where output is to stderr and will only be printed if the current debug level is >= 3. Messages with a debug level of 0 are always printed. The level can be set from the environment (not enabled yet) or with gdb by modifying variable _rthread_debug_level. "Fine with me" -Otto
2005-12-31No point in saving a bunch of extra registers, and the child's state mustDale Rahn
be fully saved in resisters, if left on the parents stack, it could be overwritten before the child runs. pointed out by miod.
2005-12-31add pthread_mutexattr_gettype.Brad Smith
ok otto@
2005-12-31Implement suspend/resume and creation of initially suspended threads.Otto Moerbeek
With this, java seems to be operational. Also make threads_ready non-static, which is needed for an upcoming diff. ok tedu@
2005-12-30Remove exitinng thread from the list of threads. ok tedu@Otto Moerbeek
2005-12-30use queue.h macros for thread house keeping; make some vars non-staticOtto Moerbeek
and fix a bug in thread creation error path. ok tedu@
2005-12-30__aligned__ isn't really necessary on the struct, an aligned memberTed Unangst
will make the right thing happen. verified by kettenis and drahn
2005-12-30prototype all the thread syscalls in rthread.h for now.Ted Unangst
update for new thrwakeup that takes a count argument
2005-12-29Put the existing _np functions into separate file; introduceOtto Moerbeek
pthread_stackseg_np(), from existing pthread lib. discussed with tedu@ ok marc@
2005-12-29implement pthread_main_np(); ok tedu@Otto Moerbeek
2005-12-29the story in pthread_rwlockattr_destory() shoudl be destroyedOtto Moerbeek
2005-12-28remainder of the hppa support code for librthread. ok&help kettenis@ mickey@Miod Vallat
2005-12-25sparc64 support code for librthread (_atomic_lock yanked from existingMiod Vallat
libpthread code).
2005-12-25sparc support code for librthread (_atomic_lock yanked from existingMiod Vallat
libpthread code).
2005-12-25remove silly alpha commentTed Unangst
2005-12-25child calls threxit after thread returnTed Unangst
2005-12-25put the error handling jump code back in from brad/marcoTed Unangst
call right sycall after threadfn return
2005-12-25if the start routine returns (never happens), call the right threxit syscallTed Unangst
2005-12-25A better implementation which does not use the caller's stack and thus is notMiod Vallat
raceable.
2005-12-25add rfork_thread for alpha, from kudo takashiTed Unangst
2005-12-24mips64 support code for librthread (_atomic_lock yanked from existingMiod Vallat
libpthread code).
2005-12-23m88k suppport code for librthread.Miod Vallat
2005-12-23vax support bits for librthread (need the child_return() fix just commited).Miod Vallat
2005-12-23m68k support code for librthread; atomic lock routine borrowed from theMiod Vallat
existing libpthread code.
2005-12-23for reasons that do not make any sense whatsoever, _rthread_alloc_stackTed Unangst
must be called with the thread_lock held, or we crash in rfork_thread
2005-12-22add a missing underscore to the function name rthread_tls_destructors().Brad Smith
2005-12-22more consistently use _rthread prefix for all not meant to be exportedTed Unangst
interfaces that aren't static, and a few that are but which will change
2005-12-22change init code to handle failure. (actually, make it impossible to fail,Ted Unangst
but still have the callers check for good measure). prompted by miod "err() in a library???"