<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/lib/libpthread/thread/thr_rwlock.c, branch releng/6.2</title>
<subtitle>FreeBSD source tree</subtitle>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/'/>
<entry>
<title>Add a simple work-around for deadlocking on recursive read locks</title>
<updated>2004-01-08T15:37:09+00:00</updated>
<author>
<name>Daniel Eischen</name>
<email>deischen@FreeBSD.org</email>
</author>
<published>2004-01-08T15:37:09+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=24f33bca1c2f4207c48830f893ee5a07e3c4402e'/>
<id>24f33bca1c2f4207c48830f893ee5a07e3c4402e</id>
<content type='text'>
on a rwlock while there are writers waiting.  We normally favor
writers but when a reader already has at least one other read lock,
we favor the reader.  We don't track all the rwlocks owned by a
thread, nor all the threads that own a rwlock -- we just keep
a count of all the read locks owned by a thread.

PR:	24641
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
on a rwlock while there are writers waiting.  We normally favor
writers but when a reader already has at least one other read lock,
we favor the reader.  We don't track all the rwlocks owned by a
thread, nor all the threads that own a rwlock -- we just keep
a count of all the read locks owned by a thread.

PR:	24641
</pre>
</div>
</content>
</entry>
<entry>
<title>Add small piece of code to support pthread_rwlock_timedrdlock and</title>
<updated>2003-09-06T00:07:52+00:00</updated>
<author>
<name>David Xu</name>
<email>davidxu@FreeBSD.org</email>
</author>
<published>2003-09-06T00:07:52+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=407c3de5227834f5e4d1c12e0801566d81aa67cb'/>
<id>407c3de5227834f5e4d1c12e0801566d81aa67cb</id>
<content type='text'>
pthread_rwlock_timedrwlock.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
pthread_rwlock_timedrwlock.
</pre>
</div>
</content>
</entry>
<entry>
<title>Attempt to eliminate PLT relocations from rwlock aquire/release</title>
<updated>2003-05-30T00:21:52+00:00</updated>
<author>
<name>Alexander Kabaev</name>
<email>kan@FreeBSD.org</email>
</author>
<published>2003-05-30T00:21:52+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=84d55c7fad83f4fa1330cc8c2206da8ebd0b300d'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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)
</pre>
</div>
</content>
</entry>
<entry>
<title>Revamp libpthread so that it has a chance of working in an SMP</title>
<updated>2003-04-18T05:04:16+00:00</updated>
<author>
<name>Daniel Eischen</name>
<email>deischen@FreeBSD.org</email>
</author>
<published>2003-04-18T05:04:16+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=a0240e2cb0b1ef8e5b61930ac2b850c884daaba8'/>
<id>a0240e2cb0b1ef8e5b61930ac2b850c884daaba8</id>
<content type='text'>
environment.  This includes support for multiple KSEs and KSEGs.

The ability to create more than 1 KSE via pthread_setconcurrency()
is in the works as well as support for PTHREAD_SCOPE_SYSTEM threads.
Those should come shortly.

There are still some known issues which davidxu and I are working
on, but it'll make it easier for us by committing what we have.

This library now passes all of the ACE tests that libc_r passes
with the exception of one.  It also seems to work OK with KDE
including konqueror, kwrite, etc.  I haven't been able to get
mozilla to run due to lack of java plugin, so I'd be interested
to see how it works with that.

Reviewed by:	davidxu
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
environment.  This includes support for multiple KSEs and KSEGs.

The ability to create more than 1 KSE via pthread_setconcurrency()
is in the works as well as support for PTHREAD_SCOPE_SYSTEM threads.
Those should come shortly.

There are still some known issues which davidxu and I are working
on, but it'll make it easier for us by committing what we have.

This library now passes all of the ACE tests that libc_r passes
with the exception of one.  It also seems to work OK with KDE
including konqueror, kwrite, etc.  I haven't been able to get
mozilla to run due to lack of java plugin, so I'd be interested
to see how it works with that.

Reviewed by:	davidxu
</pre>
</div>
</content>
</entry>
<entry>
<title>Backout last commit.</title>
<updated>2003-03-15T04:45:42+00:00</updated>
<author>
<name>David Xu</name>
<email>davidxu@FreeBSD.org</email>
</author>
<published>2003-03-15T04:45:42+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=5b54b0891a09ca82d08e652527d1c8b531489033'/>
<id>5b54b0891a09ca82d08e652527d1c8b531489033</id>
<content type='text'>
Requested by: jhb
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Requested by: jhb
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix a bug in rwlock. When a rwlock was locked by reader threads, a</title>
<updated>2003-03-14T01:02:47+00:00</updated>
<author>
<name>David Xu</name>
<email>davidxu@FreeBSD.org</email>
</author>
<published>2003-03-14T01:02:47+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=047a20e6448a446d5bc2a5d8a3997ee651ac541d'/>
<id>047a20e6448a446d5bc2a5d8a3997ee651ac541d</id>
<content type='text'>
writter thread can block reader threads to get read lock.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
writter thread can block reader threads to get read lock.
</pre>
</div>
</content>
</entry>
<entry>
<title>Make the changes needed for libpthread to compile in its new home.</title>
<updated>2002-09-16T08:45:36+00:00</updated>
<author>
<name>Jonathan Mini</name>
<email>mini@FreeBSD.org</email>
</author>
<published>2002-09-16T08:45:36+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=cc118d869b950c0c5b934133ed4184e83d88553b'/>
<id>cc118d869b950c0c5b934133ed4184e83d88553b</id>
<content type='text'>
The new libpthread will provide POSIX threading support using KSE.
These files were previously repo-copied from src/lib/libc_r.

Reviewed by:	deischen
Approved by:	-arch
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The new libpthread will provide POSIX threading support using KSE.
These files were previously repo-copied from src/lib/libc_r.

Reviewed by:	deischen
Approved by:	-arch
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix the return code from pthread_rwlock_try[rw|rd]lock() functions;</title>
<updated>2002-03-15T18:27:58+00:00</updated>
<author>
<name>Brian S. Dean</name>
<email>bsd@FreeBSD.org</email>
</author>
<published>2002-03-15T18:27:58+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=b18ae9245d95dc3ba02d0797a11b8bc9a025ec2a'/>
<id>b18ae9245d95dc3ba02d0797a11b8bc9a025ec2a</id>
<content type='text'>
these should return EBUSY when the calling thread would block.

MFC after: 2 weeks
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
these should return EBUSY when the calling thread would block.

MFC after: 2 weeks
</pre>
</div>
</content>
</entry>
<entry>
<title>To be consistent, use the __weak_reference macro from &lt;sys/cdefs.h&gt;</title>
<updated>2001-04-10T04:19:21+00:00</updated>
<author>
<name>Daniel Eischen</name>
<email>deischen@FreeBSD.org</email>
</author>
<published>2001-04-10T04:19:21+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=437df4859af22264a2c620a3720c776bf0c4a58d'/>
<id>437df4859af22264a2c620a3720c776bf0c4a58d</id>
<content type='text'>
instead of #pragma weak to create weak definitions.

Suggested by:	bde
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
instead of #pragma weak to create weak definitions.

Suggested by:	bde
</pre>
</div>
</content>
</entry>
<entry>
<title>Add weak definitions for wrapped system calls.  In general:</title>
<updated>2001-01-24T13:03:38+00:00</updated>
<author>
<name>Daniel Eischen</name>
<email>deischen@FreeBSD.org</email>
</author>
<published>2001-01-24T13:03:38+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=e5106342c6de9cbe26c4827e4e29bae309cd8cfb'/>
<id>e5106342c6de9cbe26c4827e4e29bae309cd8cfb</id>
<content type='text'>
	_foo - wrapped system call
	foo - weak definition to _foo

and for cancellation points:

	_foo - wrapped system call
	__foo - enter cancellation point, call _foo(), leave
	        cancellation point
	foo - weak definition to __foo

Change use of global _thread_run to call a function to get the
currently running thread.

Make all pthread_foo functions weak definitions to _pthread_foo,
where _pthread_foo is the implementation.  This allows an application
to provide its own pthread functions.

Provide slightly different versions of pthread_mutex_lock and
pthread_mutex_init so that we can tell the difference between
a libc mutex and an application mutex.  Threads holding mutexes
internal to libc should never be allowed to exit, call signal
handlers, or cancel.

Approved by:	-arch
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	_foo - wrapped system call
	foo - weak definition to _foo

and for cancellation points:

	_foo - wrapped system call
	__foo - enter cancellation point, call _foo(), leave
	        cancellation point
	foo - weak definition to __foo

Change use of global _thread_run to call a function to get the
currently running thread.

Make all pthread_foo functions weak definitions to _pthread_foo,
where _pthread_foo is the implementation.  This allows an application
to provide its own pthread functions.

Provide slightly different versions of pthread_mutex_lock and
pthread_mutex_init so that we can tell the difference between
a libc mutex and an application mutex.  Threads holding mutexes
internal to libc should never be allowed to exit, call signal
handlers, or cancel.

Approved by:	-arch
</pre>
</div>
</content>
</entry>
</feed>
