<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/lib/libpthread/sys, branch release/5.4.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=release%2F5.4.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=release%2F5.4.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2005-02-04T16:17:55Z</updated>
<entry>
<title>MFC Most of the various fixes and changes to libpthread from HEAD to 5.x</title>
<updated>2005-02-04T16:17:55Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2005-02-04T16:17:55Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=db881d543a1ed25e28ddd99393c3bcd05c7e571d'/>
<id>urn:sha1:db881d543a1ed25e28ddd99393c3bcd05c7e571d</id>
<content type='text'>
including:

Pull debug symbols in for statically linked binaries.

gcc -O2 cleanups.

Don't call _thr_start_sig_daemon() when SYSTEM_SCOPE_ONLY is defined.

If a system scope thread didn't set a timeout, don't call the clock_gettime
system call before and after sleeping.

Add missing reference count drops to close a memory leak.

Save cancelflags in signal frame.

Use a generic way to back threads out of wait queues when handling
signals instead of having more intricate knowledge of thread state
within signal handling.

Simplify signal code because of above (by David Xu).

Use macros for libpthread usage of pthread_cleanup_push() and
pthread_cleanup_pop().  This removes some instances of malloc()
and free() from the semaphore and pthread_once() implementations.

When single threaded and forking(), make sure that the current
thread's signal mask is inherited by the forked thread.

Use private mutexes for libc and libpthread.  Signals are
deferred while threads hold private mutexes.  This fix breaks
an internal system ABI that old versions of the
www/linuxpluginwrapper port depend on.  Upgrading that port to the
latest version will fix that.

Fix race condition in condition variables where handling a
signal (pthread_kill() or kill()) may not see a wakeup
(pthread_cond_signal() or pthread_cond_broadcast()).

Don't panic when sigsuspend is interrupted by a cancellation.
</content>
</entry>
<entry>
<title>Add the ability to reinitialize libpthread's internal FIFO-queueing</title>
<updated>2003-11-04T20:01:38Z</updated>
<author>
<name>Daniel Eischen</name>
<email>deischen@FreeBSD.org</email>
</author>
<published>2003-11-04T20:01:38Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=d6b826bac7cba8bd901ca2db952bb1dc514ca79f'/>
<id>urn:sha1:d6b826bac7cba8bd901ca2db952bb1dc514ca79f</id>
<content type='text'>
locks.

Reviewed by:	davidxu
</content>
</entry>
<entry>
<title>Only generate code for _LCK_ASSERT if _LCK_DEBUG is defined.</title>
<updated>2003-10-02T03:24:26Z</updated>
<author>
<name>David Xu</name>
<email>davidxu@FreeBSD.org</email>
</author>
<published>2003-10-02T03:24:26Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=28e2ce478d04a60f22169aedfce85d93c1ed3328'/>
<id>urn:sha1:28e2ce478d04a60f22169aedfce85d93c1ed3328</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Don't assume sizeof(long) = sizeof(int) on x86; use int</title>
<updated>2003-09-03T17:56:26Z</updated>
<author>
<name>Daniel Eischen</name>
<email>deischen@FreeBSD.org</email>
</author>
<published>2003-09-03T17:56:26Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=850108c0b4ef4545310af9b03c4a8531b8b36d55'/>
<id>urn:sha1:850108c0b4ef4545310af9b03c4a8531b8b36d55</id>
<content type='text'>
instead of long types for low-level locks.

Add prototypes for some internal libc functions that are
wrapped by the library as cancellation points.

Add memory barriers to alpha atomic swap functions (submitted
by davidxu).

Requested by:	bde
</content>
</entry>
<entry>
<title>Move the machine specific files from sys/Makefile.inc and put them</title>
<updated>2003-06-23T04:28:31Z</updated>
<author>
<name>Marcel Moolenaar</name>
<email>marcel@FreeBSD.org</email>
</author>
<published>2003-06-23T04:28:31Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=842728619a412d2ce3a8c4c5ba4ac60a9a77726c'/>
<id>urn:sha1:842728619a412d2ce3a8c4c5ba4ac60a9a77726c</id>
<content type='text'>
in a machine specific makefile. While here, sort the sub-directories
in Makefile and remove _atomic_lock.S from all makefiles.
</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/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>Change low-level locking a bit so that we can tell if</title>
<updated>2003-05-24T02:29:25Z</updated>
<author>
<name>Daniel Eischen</name>
<email>deischen@FreeBSD.org</email>
</author>
<published>2003-05-24T02:29:25Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=1cb570c53190e8b569091f708781c6bf9c3126c7'/>
<id>urn:sha1:1cb570c53190e8b569091f708781c6bf9c3126c7</id>
<content type='text'>
a lock is being waitied on.

Fix a races in join and cancellation.

When trying to wait on a CV and the library is not yet
threaded, make it threaded so that waiting actually works.

When trying to nanosleep() and we're not threaded, just
call the system call nanosleep instead of adding the thread
to the wait queue.

Clean up adding/removing new threads to the "all threads queue",
assigning them unique ids, and tracking how many active threads
there are.  Do it all when the thread is added to the scheduling
queue instead of making pthread_create() know how to do it.

Fix a race where a thread could be marked for signal delivery
but it could be exited before we actually add the signal to it.

Other minor cleanups and bug fixes.

Submitted by:	davidxu
Approved by:	re@ (blanket for libpthread)
</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/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>Protect against a race between granting a lock and accessing</title>
<updated>2003-05-04T22:29:09Z</updated>
<author>
<name>Daniel Eischen</name>
<email>deischen@FreeBSD.org</email>
</author>
<published>2003-05-04T22:29:09Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=c72cd7c9e2e07a2c466f0f61ece3cfc2e464218c'/>
<id>urn:sha1:c72cd7c9e2e07a2c466f0f61ece3cfc2e464218c</id>
<content type='text'>
other parts of the lock.

Submitted by:	davidxu
</content>
</entry>
<entry>
<title>Protect thread errno from being changed while operating</title>
<updated>2003-04-23T21:46:50Z</updated>
<author>
<name>Daniel Eischen</name>
<email>deischen@FreeBSD.org</email>
</author>
<published>2003-04-23T21:46:50Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=f1c8192fd426ea8d3256f3a25b7aa9d3dac7f3a4'/>
<id>urn:sha1:f1c8192fd426ea8d3256f3a25b7aa9d3dac7f3a4</id>
<content type='text'>
on behalf of the KSE.

Add a kse_reinit function to reinitialize a reused KSE.

Submitted by:	davidxu
</content>
</entry>
</feed>
