<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/lib/libthr, 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-11-23T11:59:01Z</updated>
<entry>
<title>MFC r227604:</title>
<updated>2011-11-23T11:59:01Z</updated>
<author>
<name>David Xu</name>
<email>davidxu@FreeBSD.org</email>
</author>
<published>2011-11-23T11:59:01Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=58e2c4a05775e2e162461c8c3be13343b18ff267'/>
<id>urn:sha1:58e2c4a05775e2e162461c8c3be13343b18ff267</id>
<content type='text'>
Pass CVWAIT flags to kernel, this should handle
Timeout correctly for pthread_cond_timedwait when
it uses kernel-based condition variable.

Approved by:	re (kib)
</content>
</entry>
<entry>
<title>Do not set thread name to less than informative 'initial thread'.</title>
<updated>2011-06-19T13:35:36Z</updated>
<author>
<name>Alexander Kabaev</name>
<email>kan@FreeBSD.org</email>
</author>
<published>2011-06-19T13:35:36Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=a805bbe21aeaed103d8bb92ee30b4f8ba383642b'/>
<id>urn:sha1:a805bbe21aeaed103d8bb92ee30b4f8ba383642b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge from r161730:</title>
<updated>2011-06-18T11:07:09Z</updated>
<author>
<name>Marius Strobl</name>
<email>marius@FreeBSD.org</email>
</author>
<published>2011-06-18T11:07:09Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=6ce2f878d3aa45a07cfdb8f87a23c274048cdc58'/>
<id>urn:sha1:6ce2f878d3aa45a07cfdb8f87a23c274048cdc58</id>
<content type='text'>
o  Set TP using inline assembly to avoid dead code elimination.
o  Eliminate _tcb.

Merge from r161840:
Stylize: avoid using a global register variable.

Merge from r157461:
Simplify _get_curthread() and _tcb_ctor because libc and rtld now
already allocate thread pointer space in tls block for initial thread.

Merge from r177853:
Replace function _umtx_op with _umtx_op_err, the later function directly
returns errno, because errno can be mucked by user's signal handler and
most of pthread api heavily depends on errno to be correct, this change
should improve stability of the thread library.

MFC after:	1 week
</content>
</entry>
<entry>
<title>r179417 introduced a bug into pthread_once().  Previously pthread_once()</title>
<updated>2011-04-20T14:19:34Z</updated>
<author>
<name>Ryan Stone</name>
<email>rstone@FreeBSD.org</email>
</author>
<published>2011-04-20T14:19:34Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=aad93b043af83366e3169493e494ab8ec620249a'/>
<id>urn:sha1:aad93b043af83366e3169493e494ab8ec620249a</id>
<content type='text'>
used a global pthread_mutex_t for synchronization.  r179417 replaced that
with an implementation that directly used atomic instructions and thr_*
syscalls to synchronize callers to pthread_once.  However, calling
pthread_mutex_lock on the global mutex implicitly ensured that
_thr_check_init() had been called but with r179417 this was no longer
guaranteed.  This meant that if you were unlucky enough to have your first
call into libthr be a call to pthread_once(), you would segfault when
trying to access the pointer returned by _get_curthread().

The fix is to explicitly call _thr_check_init() from pthread_once().

Reviewed by:	davidxu
Approved by:	emaste (mentor)
MFC after:	1 week
</content>
</entry>
<entry>
<title>Introduce a non-portable function pthread_getthreadid_np(3) to retrieve</title>
<updated>2011-02-07T21:26:46Z</updated>
<author>
<name>Jung-uk Kim</name>
<email>jkim@FreeBSD.org</email>
</author>
<published>2011-02-07T21:26:46Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=678b238c85ec7974d1e51753776208238cadb450'/>
<id>urn:sha1:678b238c85ec7974d1e51753776208238cadb450</id>
<content type='text'>
calling thread's unique integral ID, which is similar to AIX function of
the same name.  Bump __FreeBSD_version to note its introduction.

Reviewed by:	kib
</content>
</entry>
<entry>
<title>Fix a typo.</title>
<updated>2011-01-11T01:57:02Z</updated>
<author>
<name>David Xu</name>
<email>davidxu@FreeBSD.org</email>
</author>
<published>2011-01-11T01:57:02Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=65a6aaf1f3037ff1d00e0b4815813e5644033f59'/>
<id>urn:sha1:65a6aaf1f3037ff1d00e0b4815813e5644033f59</id>
<content type='text'>
Submitted by:	avg
</content>
</entry>
<entry>
<title>For the process that already loaded libthr but still not initialized</title>
<updated>2011-01-10T16:10:25Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2011-01-10T16:10:25Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=fad128db86ae3b5790eef4f400720822b8754df1'/>
<id>urn:sha1:fad128db86ae3b5790eef4f400720822b8754df1</id>
<content type='text'>
threading, fall back to libc method of performing
__pthread_map_stacks_exec() job.

Reported and tested by:	Mykola Dzham &lt;i levsha me&gt;
</content>
</entry>
<entry>
<title>Implement the __pthread_map_stacks_exec() for libthr.</title>
<updated>2011-01-09T12:38:40Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2011-01-09T12:38:40Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=da2fcff746a151ab3ea26c237953a90236cfc176'/>
<id>urn:sha1:da2fcff746a151ab3ea26c237953a90236cfc176</id>
<content type='text'>
Stack creation code is changed to call _rtld_get_stack_prot() to get
the stack protection right. There is a race where thread is created
during dlopen() of dso that requires executable stacks. Then,
_rtld_get_stack_prot() may return PROT_READ | PROT_WRITE, but thread
is still not linked into the thread list. In this case, the callback
misses the thread stack, and rechecks the required protection
afterward.

Reviewed by:	davidxu
</content>
</entry>
<entry>
<title>Add section .note.GNU-stack for assembly files used by 386 and amd64.</title>
<updated>2011-01-07T16:09:33Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2011-01-07T16:09:33Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=6c69d0523265f537225cf1a8940f1c1a09d97396'/>
<id>urn:sha1:6c69d0523265f537225cf1a8940f1c1a09d97396</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Return 0 instead of garbage value.</title>
<updated>2011-01-06T08:13:30Z</updated>
<author>
<name>David Xu</name>
<email>davidxu@FreeBSD.org</email>
</author>
<published>2011-01-06T08:13:30Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=ebc8e8fd7f76d1c63052a1e512f3c017bcb6e873'/>
<id>urn:sha1:ebc8e8fd7f76d1c63052a1e512f3c017bcb6e873</id>
<content type='text'>
Found by:	clang static analyzer
</content>
</entry>
</feed>
