<feed xmlns='http://www.w3.org/2005/Atom'>
<title>musl/src/thread, branch v0.7.5</title>
<subtitle>musl - an implementation of the standard library for Linux-based systems</subtitle>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/'/>
<entry>
<title>simplify setting result on thread cancellation</title>
<updated>2011-04-02T02:15:03+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-04-02T02:15:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=4ae5e811f8d291a0df1418e1aae583161c142952'/>
<id>4ae5e811f8d291a0df1418e1aae583161c142952</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>use bss instead of mmap for main thread's pthread thread-specific data</title>
<updated>2011-04-02T02:07:59+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-04-02T02:07:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=6c16d3e98ab2e466bb12ded12dfad1f8f272b1f8'/>
<id>6c16d3e98ab2e466bb12ded12dfad1f8f272b1f8</id>
<content type='text'>
this simplifies code and removes a failure case
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
this simplifies code and removes a failure case
</pre>
</div>
</content>
</entry>
<entry>
<title>fix misspelled PTHREAD_CANCELED constant</title>
<updated>2011-04-02T00:48:02+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-04-02T00:48:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=3df3d4f5127a15c1237006d22f948b430f9dbe7e'/>
<id>3df3d4f5127a15c1237006d22f948b430f9dbe7e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>use a_store to set cancel flag in pthread_cancel, to ensure a barrier</title>
<updated>2011-04-01T23:53:16+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-04-01T23:53:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=ded6cb5f719464649bcb61624d52327ae444bfca'/>
<id>ded6cb5f719464649bcb61624d52327ae444bfca</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>simplify pthread_key_delete</title>
<updated>2011-03-31T23:06:22+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-03-31T23:06:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=c1b39b203dc3614469f2581fa4d6146cf0ac2af0'/>
<id>c1b39b203dc3614469f2581fa4d6146cf0ac2af0</id>
<content type='text'>
calling this function on an uninitialized key value is UB, so there is
no need to check that the table pointer was initialized.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
calling this function on an uninitialized key value is UB, so there is
no need to check that the table pointer was initialized.
</pre>
</div>
</content>
</entry>
<entry>
<title>greatly simplify pthread_key_create (~20% size reduction)</title>
<updated>2011-03-31T23:04:56+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-03-31T23:04:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=c9806fc2f9b68be8942740da508eaaf0695d020e'/>
<id>c9806fc2f9b68be8942740da508eaaf0695d020e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>avoid crash on stupid but allowable usage of pthread_mutex_unlock</title>
<updated>2011-03-30T14:32:45+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-03-30T14:32:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=a1eb8cb5dab06dd23c256d03d82ef6b0efc4b6c6'/>
<id>a1eb8cb5dab06dd23c256d03d82ef6b0efc4b6c6</id>
<content type='text'>
unlocking an unlocked mutex is not UB for robust or error-checking
mutexes, so we must avoid calling __pthread_self (which might crash
due to lack of thread-register initialization) until after checking
that the mutex is locked.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
unlocking an unlocked mutex is not UB for robust or error-checking
mutexes, so we must avoid calling __pthread_self (which might crash
due to lack of thread-register initialization) until after checking
that the mutex is locked.
</pre>
</div>
</content>
</entry>
<entry>
<title>streamline mutex unlock to remove a useless branch, use a_store to unlock</title>
<updated>2011-03-30T13:06:00+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-03-30T13:06:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=02084109f0f0d6e0a7fe4a8cb3a90a422725e264'/>
<id>02084109f0f0d6e0a7fe4a8cb3a90a422725e264</id>
<content type='text'>
this roughly halves the cost of pthread_mutex_unlock, at least for
non-robust, normal-type mutexes.

the a_store change is in preparation for future support of archs which
require a memory barrier or special atomic store operation, and also
should prevent the possibility of the compiler misordering writes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
this roughly halves the cost of pthread_mutex_unlock, at least for
non-robust, normal-type mutexes.

the a_store change is in preparation for future support of archs which
require a memory barrier or special atomic store operation, and also
should prevent the possibility of the compiler misordering writes.
</pre>
</div>
</content>
</entry>
<entry>
<title>cheap special-case optimization for normal mutexes</title>
<updated>2011-03-30T12:58:25+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-03-30T12:58:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=124b4ebc8a293e616cc0a7eaba3587c9b7ff13ec'/>
<id>124b4ebc8a293e616cc0a7eaba3587c9b7ff13ec</id>
<content type='text'>
cycle-level benchmark on atom cpu showed typical pthread_mutex_lock
call dropping from ~120 cycles to ~90 cycles with this change. benefit
may vary with compiler options and version, but this optimization is
very cheap to make and should always help some.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
cycle-level benchmark on atom cpu showed typical pthread_mutex_lock
call dropping from ~120 cycles to ~90 cycles with this change. benefit
may vary with compiler options and version, but this optimization is
very cheap to make and should always help some.
</pre>
</div>
</content>
</entry>
<entry>
<title>revert mutex "optimization" that turned out to be worse</title>
<updated>2011-03-29T19:11:25+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-03-29T19:11:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=8524d6536c7bcb893115c0c48982c7311906c1db'/>
<id>8524d6536c7bcb893115c0c48982c7311906c1db</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
