<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/include/pthread.h, branch release/9.0.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=release%2F9.0.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=release%2F9.0.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2011-01-06T03:30:16Z</updated>
<entry>
<title>Remove leftover for r214093.</title>
<updated>2011-01-06T03:30:16Z</updated>
<author>
<name>David Xu</name>
<email>davidxu@FreeBSD.org</email>
</author>
<published>2011-01-06T03:30:16Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=f66ffe64ceeaab88c60e0f148bd71eb1d82573b0'/>
<id>urn:sha1:f66ffe64ceeaab88c60e0f148bd71eb1d82573b0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add pthread_rwlockattr_setkind_np and pthread_rwlockattr_getkind_np, the</title>
<updated>2010-10-18T05:09:22Z</updated>
<author>
<name>David Xu</name>
<email>davidxu@FreeBSD.org</email>
</author>
<published>2010-10-18T05:09:22Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=a6b9b59e0486667a43fda2ab77a7a053c820c2d9'/>
<id>urn:sha1:a6b9b59e0486667a43fda2ab77a7a053c820c2d9</id>
<content type='text'>
functions set or get pthread_rwlock type, current supported types are:
   PTHREAD_RWLOCK_PREFER_READER_NP,
   PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
   PTHREAD_RWLOCK_PREFER_WRITER_NP,
default is PTHREAD_RWLOCK_PREFER_WRITER_NONCECURSIVE_NP, this maintains
binary compatible with old code.
</content>
</entry>
<entry>
<title>In current code, statically initialized and destroyed object have</title>
<updated>2010-09-28T04:57:56Z</updated>
<author>
<name>David Xu</name>
<email>davidxu@FreeBSD.org</email>
</author>
<published>2010-09-28T04:57:56Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=bbb64c2143215df373b4ce39af8fabd3b913b824'/>
<id>urn:sha1:bbb64c2143215df373b4ce39af8fabd3b913b824</id>
<content type='text'>
same null value, the code can not distinguish between them, to
fix the problem, now a destroyed object is assigned to a non-null
value, and it will be rejected by some pthread functions.
PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP is changed to number 1, so that
adaptive mutex can be statically initialized correctly.
</content>
</entry>
<entry>
<title>Fix the visibility of several prototypes. Also move pthread_kill() and</title>
<updated>2009-03-14T20:10:14Z</updated>
<author>
<name>David Schultz</name>
<email>das@FreeBSD.org</email>
</author>
<published>2009-03-14T20:10:14Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=48a3f7d9ae7a3d30f69dbef204f6e09b90dd6ce7'/>
<id>urn:sha1:48a3f7d9ae7a3d30f69dbef204f6e09b90dd6ce7</id>
<content type='text'>
pthread_sigmask() to signal.h. In principle, this shouldn't break anything,
since they're already in signal.h on other systems, and the FreeBSD
manpage says that both pthread.h and signal.h need to be included to
get these functions.

Add a hack to declare pthread_t in the P1003.1-2008 namespace
in signal.h.
</content>
</entry>
<entry>
<title>Make pthread_cleanup_push() and pthread_cleanup_pop() as a pair of macros,</title>
<updated>2008-06-09T01:14:10Z</updated>
<author>
<name>David Xu</name>
<email>davidxu@FreeBSD.org</email>
</author>
<published>2008-06-09T01:14:10Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=83a07587898c460f4444b85725f2dbdf26cf6f33'/>
<id>urn:sha1:83a07587898c460f4444b85725f2dbdf26cf6f33</id>
<content type='text'>
use stack space to keep cleanup information, this eliminates overhead of
calling malloc() and free() in thread library.

Discussed on: thread@
</content>
</entry>
<entry>
<title>Add POSIX pthread API pthread_getcpuclockid() to get a thread's cpu</title>
<updated>2008-03-22T09:59:20Z</updated>
<author>
<name>David Xu</name>
<email>davidxu@FreeBSD.org</email>
</author>
<published>2008-03-22T09:59:20Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=9939a13667567dd4b0c3496953d99b87a6995208'/>
<id>urn:sha1:9939a13667567dd4b0c3496953d99b87a6995208</id>
<content type='text'>
time clock id.
</content>
</entry>
<entry>
<title>Add a new "non-portable" mutex type, PTHREAD_MUTEX_ADAPTIVE_NP.  This</title>
<updated>2007-10-29T21:01:47Z</updated>
<author>
<name>Kris Kennaway</name>
<email>kris@FreeBSD.org</email>
</author>
<published>2007-10-29T21:01:47Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=2017a7cdfe8f1a0e38b76e8e8871fe90df07b8f7'/>
<id>urn:sha1:2017a7cdfe8f1a0e38b76e8e8871fe90df07b8f7</id>
<content type='text'>
is also implemented in glibc and is used by a number of existing
applications (mysql, firefox, etc).

This mutex type is a default mutex with the additional property that
it spins briefly when attempting to acquire a contested lock, doing
trylock operations in userland before entering the kernel to block if
eventually unsuccessful.

The expectation is that applications requesting this mutex type know
that the mutex is likely to be only held for very brief periods, so it
is faster to spin in userland and probably succeed in acquiring the
mutex, than to enter the kernel and sleep, only to be woken up almost
immediately.  This can help significantly in certain cases when
pthread mutexes are heavily contended and held for brief durations
(such as mysql).

Spin up to 200 times before entering the kernel, which represents only
a few us on modern CPUs.  No performance degradation was observed with
this value and it is sufficient to avoid a large performance drop in
mysql performance in the heavily contended pthread mutex case.

The libkse implementation is a NOP.

Reviewed by:      jeff
MFC after:        3 days
</content>
</entry>
<entry>
<title>Add prototype for following functions, plus tab fixes.</title>
<updated>2005-10-24T05:53:54Z</updated>
<author>
<name>David Xu</name>
<email>davidxu@FreeBSD.org</email>
</author>
<published>2005-10-24T05:53:54Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=02ea63873223ac4f3422825440f0e2657460ca14'/>
<id>urn:sha1:02ea63873223ac4f3422825440f0e2657460ca14</id>
<content type='text'>
	pthread_condattr_getpshared
	pthread_condattr_setpshared
	pthread_mutexattr_getpshared
	pthread_mutexattr_setpshared
</content>
</entry>
<entry>
<title>Improve POSIX conformance:</title>
<updated>2005-09-01T15:33:22Z</updated>
<author>
<name>Stefan Farfeleder</name>
<email>stefanf@FreeBSD.org</email>
</author>
<published>2005-09-01T15:33:22Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=323abbb7ce5ad4cf38c9ad68229c14008b712cb2'/>
<id>urn:sha1:323abbb7ce5ad4cf38c9ad68229c14008b712cb2</id>
<content type='text'>
- Don't pollute the namespace by including &lt;sys/types.h&gt;, &lt;sys/time.h&gt;,
  &lt;sys/signal.h&gt; and &lt;limits.h&gt;.  Use __MINSIGSTKSZ and __ULONG_MAX from
  &lt;machine/_limits.h&gt;, __sigset_t from &lt;sys/_sigset.h&gt; instead.
- Include &lt;time.h&gt; because POSIX says we have to.

PTHREAD_{DESTRUCTOR_ITERATIONS,KEYS_MAX,STACK_MIN,THREADS_MAX} should
eventually move to &lt;limits.h&gt; but are left here for now.

Discussed on:	standards@, threads@
</content>
</entry>
<entry>
<title>- Prefix MUTEX_TYPE_MAX with PTHREAD_ to avoid namespace pollution.</title>
<updated>2005-08-19T21:31:42Z</updated>
<author>
<name>Stefan Farfeleder</name>
<email>stefanf@FreeBSD.org</email>
</author>
<published>2005-08-19T21:31:42Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=ad7c49168f8b32fedbe11f4675cb7d4bd3b896e6'/>
<id>urn:sha1:ad7c49168f8b32fedbe11f4675cb7d4bd3b896e6</id>
<content type='text'>
- Remove the macros MUTEX_TYPE_FAST and MUTEX_TYPE_COUNTING_FAST.

OK'ed by:	deischen
</content>
</entry>
</feed>
