freebsd-dev/lib/libpthread/thread
Daniel Eischen 55613576f5 o Don't add a scope system thread's KSE to the list of available
KSEs when it's thread exits; allow the GC handler to do that.

o Make spinlock/spinlock critical regions.

The following were submitted by davidxu

  o Alow thr_switch() to take a null mailbox argument.

  o Better protect cancellation checks.

  o Don't set KSE specific data when creating new KSEs; rely on the
    first upcall of the KSE to set it.

  o Add the ability to set the maximum concurrency level and do this
    automatically.  We should have a way to enable/disable this with
    some sort of tunable because some applications may not want this
    to be the default.

  o Hold the scheduling lock across thread switch calls.

  o If scheduling of a thread fails, make sure to remove it from the list
    of active threads.

  o Better protect accesses to a joining threads when the target thread is
    exited and detached.

  o Remove some macro definitions that are now provided by <sys/kse.h>.

  o Don't leave the library in threaded mode if creation of the initial
    KSE fails.

  o Wakeup idle KSEs when there are threads ready to run.

  o Maintain the number of threads active in the priority queue.
2003-04-28 23:56:12 +00:00
..
Makefile.inc Add a working pthread_[gs]etconcurrency. Initial null implementation 2003-04-22 20:29:16 +00:00
thr_aio_suspend.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_attr_destroy.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_attr_get_np.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_attr_getdetachstate.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_attr_getguardsize.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_attr_getinheritsched.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_attr_getschedparam.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_attr_getschedpolicy.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_attr_getscope.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_attr_getstack.c Add pthread_attr_getstack() and pthread_attr_setstack(). 2003-02-10 08:48:04 +00:00
thr_attr_getstackaddr.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_attr_getstacksize.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_attr_init.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_attr_setcreatesuspend_np.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_attr_setdetachstate.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_attr_setguardsize.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_attr_setinheritsched.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_attr_setschedparam.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_attr_setschedpolicy.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_attr_setscope.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_attr_setstack.c Add pthread_attr_getstack() and pthread_attr_setstack(). 2003-02-10 08:48:04 +00:00
thr_attr_setstackaddr.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_attr_setstacksize.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_autoinit.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_cancel.c o Don't add a scope system thread's KSE to the list of available 2003-04-28 23:56:12 +00:00
thr_clean.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_close.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_concurrency.c o Don't add a scope system thread's KSE to the list of available 2003-04-28 23:56:12 +00:00
thr_cond.c o Don't add a scope system thread's KSE to the list of available 2003-04-28 23:56:12 +00:00
thr_condattr_destroy.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_condattr_init.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_creat.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_create.c o Don't add a scope system thread's KSE to the list of available 2003-04-28 23:56:12 +00:00
thr_detach.c o Don't add a scope system thread's KSE to the list of available 2003-04-28 23:56:12 +00:00
thr_equal.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_exit.c o Don't add a scope system thread's KSE to the list of available 2003-04-28 23:56:12 +00:00
thr_fcntl.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_find_thread.c o Don't add a scope system thread's KSE to the list of available 2003-04-28 23:56:12 +00:00
thr_fork.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_fsync.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_getprio.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_getschedparam.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_info.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_init.c Add a couple asserts to pthread_cond_foo to ensure the (low-level) 2003-04-22 20:28:33 +00:00
thr_join.c o Don't add a scope system thread's KSE to the list of available 2003-04-28 23:56:12 +00:00
thr_kern.c o Don't add a scope system thread's KSE to the list of available 2003-04-28 23:56:12 +00:00
thr_kill.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_main_np.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_mattr_init.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_mattr_kind_np.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_msync.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_multi_np.c Revamp suspend and resume. While I'm here add pthread_suspend_all_np() 2002-05-24 04:32:28 +00:00
thr_mutex_prioceiling.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_mutex_protocol.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_mutex.c o Don't add a scope system thread's KSE to the list of available 2003-04-28 23:56:12 +00:00
thr_mutexattr_destroy.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_nanosleep.c o Don't add a scope system thread's KSE to the list of available 2003-04-28 23:56:12 +00:00
thr_once.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_open.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_pause.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_poll.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_printf.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_priority_queue.c o Don't add a scope system thread's KSE to the list of available 2003-04-28 23:56:12 +00:00
thr_private.h o Don't add a scope system thread's KSE to the list of available 2003-04-28 23:56:12 +00:00
thr_pselect.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_read.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_readv.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_resume_np.c Sorry folks; I accidentally committed a patch from what I was working 2003-04-18 07:09:43 +00:00
thr_rwlock.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_rwlockattr.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_select.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_self.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_sem.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_seterrno.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_setprio.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_setschedparam.c Add an i386-specifc hack to always set %gs. There still seems 2003-04-21 04:02:56 +00:00
thr_sig.c Use the correct link entry for walking the list of threads. 2003-04-28 21:35:06 +00:00
thr_sigaction.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_sigmask.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_sigpending.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_sigprocmask.c Make the changes needed for libpthread to compile in its new home. 2002-09-16 08:45:36 +00:00
thr_sigsuspend.c o Don't add a scope system thread's KSE to the list of available 2003-04-28 23:56:12 +00:00
thr_sigwait.c o Don't add a scope system thread's KSE to the list of available 2003-04-28 23:56:12 +00:00
thr_single_np.c Revamp suspend and resume. While I'm here add pthread_suspend_all_np() 2002-05-24 04:32:28 +00:00
thr_sleep.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_spec.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_spinlock.c o Don't add a scope system thread's KSE to the list of available 2003-04-28 23:56:12 +00:00
thr_stack.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_suspend_np.c Add an i386-specifc hack to always set %gs. There still seems 2003-04-21 04:02:56 +00:00
thr_switch_np.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_system.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_tcdrain.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_vfork.c To be consistent, use the __weak_reference macro from <sys/cdefs.h> 2001-04-10 04:19:21 +00:00
thr_wait4.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_wait.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_waitpid.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_write.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_writev.c Revamp libpthread so that it has a chance of working in an SMP 2003-04-18 05:04:16 +00:00
thr_yield.c o Don't add a scope system thread's KSE to the list of available 2003-04-28 23:56:12 +00:00