<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src-test2/lib/libpthread/thread/thr_exit.c, branch release/6.0.0_cvs</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src-test2/atom?h=release%2F6.0.0_cvs</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src-test2/atom?h=release%2F6.0.0_cvs'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/'/>
<updated>2005-11-03T00:35:26Z</updated>
<entry>
<title>This commit was manufactured by cvs2svn to create tag</title>
<updated>2005-11-03T00:35:26Z</updated>
<author>
<name>cvs2svn</name>
<email>cvs2svn@FreeBSD.org</email>
</author>
<published>2005-11-03T00:35:26Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=3640cb54210edbb7edbf1b12ef0127ecfcea967d'/>
<id>urn:sha1:3640cb54210edbb7edbf1b12ef0127ecfcea967d</id>
<content type='text'>
'RELENG_6_0_0_RELEASE'.

This commit was manufactured to restore the state of the 6.0-RELEASE image.
</content>
</entry>
<entry>
<title>Check unhandled signals before thread marks itself as DEAD,</title>
<updated>2004-10-23T23:37:54Z</updated>
<author>
<name>David Xu</name>
<email>davidxu@FreeBSD.org</email>
</author>
<published>2004-10-23T23:37:54Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=fca6ccde6e8c6dc4b225c9e0829a31a81d112a3d'/>
<id>urn:sha1:fca6ccde6e8c6dc4b225c9e0829a31a81d112a3d</id>
<content type='text'>
this reduces chances of signal losting problem found by
Peter Holm &lt;peter@holm.cc&gt;
</content>
</entry>
<entry>
<title>As long as we have a knob to force system scope threads, why not have</title>
<updated>2004-08-12T12:12:12Z</updated>
<author>
<name>Daniel Eischen</name>
<email>deischen@FreeBSD.org</email>
</author>
<published>2004-08-12T12:12:12Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=b9de27c0051bd9c4ce167327b5824a31baee1474'/>
<id>urn:sha1:b9de27c0051bd9c4ce167327b5824a31baee1474</id>
<content type='text'>
a knob to force process scope threads.  If the environment variable
LIBPTHREAD_PROCESS_SCOPE is set, force all threads to be process
scope threads regardless of how the application creates them.  If
LIBPTHREAD_SYSTEM_SCOPE is set (forcing system scope threads), it
overrides LIBPTHREAD_PROCESS_SCOPE.

        $ # To force system scope threads
        $ LIBPTHREAD_SYSTEM_SCOPE=anything threaded_app
        $ # To force process scope threads
        $ LIBPTHREAD_PROCESS_SCOPE=anything threaded_app
</content>
</entry>
<entry>
<title>Add a way to force 1:1 mode for libpthread.  To do this, define</title>
<updated>2004-08-07T15:15:38Z</updated>
<author>
<name>Daniel Eischen</name>
<email>deischen@FreeBSD.org</email>
</author>
<published>2004-08-07T15:15:38Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=00be1d3d12712e135e623008af4c7038730e61a3'/>
<id>urn:sha1:00be1d3d12712e135e623008af4c7038730e61a3</id>
<content type='text'>
LIBPTHREAD_SYSTEM_SCOPE in the environment.

You can still force libpthread to be built in strictly 1:1 by
adding -DSYSTEM_SCOPE_ONLY to CFLAGS.  This is kept for archs
that don't yet support M:N mode.

Requested by:   rwatson
Reviewed by:    davidxu
</content>
</entry>
<entry>
<title>Add code to support thread debugging.</title>
<updated>2004-07-13T22:49:58Z</updated>
<author>
<name>David Xu</name>
<email>davidxu@FreeBSD.org</email>
</author>
<published>2004-07-13T22:49:58Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=566382df0ad602942b46c4de0161beee34bb5098'/>
<id>urn:sha1:566382df0ad602942b46c4de0161beee34bb5098</id>
<content type='text'>
1. Add global varible _libkse_debug, debugger uses the varible to identify
   libpthread. when the varible is written to non-zero by debugger, libpthread
   will take some special action at context switch time, it will check
   TMDF_DOTRUNUSER flags, if a thread has the flags set by debugger, it won't
   be scheduled, when a thread leaves KSE critical region, thread checks
   the flag, if it was set, the thread relinquish CPU.

2. Add pq_first_debug to select a thread allowd to run by debugger.

3. Some names prefixed with _thr are renamed to _thread prefix.

which is allowed to run by debugger.
</content>
</entry>
<entry>
<title>1. Allocating and freeing lock related resource in _thr_alloc and _thr_free</title>
<updated>2003-09-14T22:52:16Z</updated>
<author>
<name>David Xu</name>
<email>davidxu@FreeBSD.org</email>
</author>
<published>2003-09-14T22:52:16Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=a3a398b57d784dda3c602b1018d11a6bda383bb4'/>
<id>urn:sha1:a3a398b57d784dda3c602b1018d11a6bda383bb4</id>
<content type='text'>
   to avoid potential memory leak, also fix a bug in pthread_create, contention
   scope should be inherited when PTHREAD_INHERIT_SCHED is set, and also check
   right field for PTHREAD_INHERIT_SCHED, scheduling inherit flag is in sched_inherit.
2. Execute hooks registered by atexit() on thread stack but not on scheduler
   stack.
3. Simplify some code in _kse_single_thread by calling xxx_destroy functions.

Reviewed by: deischen
</content>
</entry>
<entry>
<title>Direct call exit if thread was never created. This makes it safe to call</title>
<updated>2003-08-18T04:03:08Z</updated>
<author>
<name>David Xu</name>
<email>davidxu@FreeBSD.org</email>
</author>
<published>2003-08-18T04:03:08Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=962eaaf9d641203f931e04e34f4bc5a1532bb099'/>
<id>urn:sha1:962eaaf9d641203f931e04e34f4bc5a1532bb099</id>
<content type='text'>
pthread_exit in main() without creating any thread.

Tessted by: deischen
</content>
</entry>
<entry>
<title>Attempt to eliminate PLT relocations from rwlock aquire/release</title>
<updated>2003-05-30T00:21:52Z</updated>
<author>
<name>Alexander Kabaev</name>
<email>kan@FreeBSD.org</email>
</author>
<published>2003-05-30T00:21:52Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=84d55c7fad83f4fa1330cc8c2206da8ebd0b300d'/>
<id>urn:sha1:84d55c7fad83f4fa1330cc8c2206da8ebd0b300d</id>
<content type='text'>
path, making them suitable for direct use by the dynamic loader.

Register libpthread-specific locking API with rtld on startup.

This still has some rough edges with signals which should be
addresses later.

Approved by:	re (scottl)
</content>
</entry>
<entry>
<title>Add a method of yielding the current thread with the scheduler</title>
<updated>2003-05-16T19:58:30Z</updated>
<author>
<name>Daniel Eischen</name>
<email>deischen@FreeBSD.org</email>
</author>
<published>2003-05-16T19:58:30Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=fd626336fd97bad05a86f02b646c66d2fe14d01a'/>
<id>urn:sha1:fd626336fd97bad05a86f02b646c66d2fe14d01a</id>
<content type='text'>
lock held (_thr_sched_switch_unlocked()) and use this to avoid
dropping the scheduler lock and having the scheduler retake the
same lock again.

Add a better way of detecting if a low-level lock is in use.

When switching out a thread due to blocking in the UTS, don't
switch to the KSE's scheduler stack only to switch back to
another thread.  If possible switch to the new thread directly
from the old thread and avoid the overhead of the extra
context switch.

Check for pending signals on a thread when entering the scheduler
and add them to the threads signal frame.  This includes some
other minor signal fixes.

Most of this was a joint effor between davidxu and myself.

Reviewed by:	davidxu
Approved by:	re@ (blanket for libpthread)
</content>
</entry>
<entry>
<title>o Don't add a scope system thread's KSE to the list of available</title>
<updated>2003-04-28T23:56:12Z</updated>
<author>
<name>Daniel Eischen</name>
<email>deischen@FreeBSD.org</email>
</author>
<published>2003-04-28T23:56:12Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=55613576f5c40d62fecb4ab76f012917fc399c3e'/>
<id>urn:sha1:55613576f5c40d62fecb4ab76f012917fc399c3e</id>
<content type='text'>
  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 &lt;sys/kse.h&gt;.

  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.
</content>
</entry>
</feed>
