<feed xmlns='http://www.w3.org/2005/Atom'>
<title>musl/src/thread, branch v0.8.4</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>fix cancellation failure in single-threaded programs</title>
<updated>2012-01-22T22:19:37+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2012-01-22T22:19:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=ce7d72596c57386c493969cc56546c7aba2e1049'/>
<id>ce7d72596c57386c493969cc56546c7aba2e1049</id>
<content type='text'>
even a single-threaded program can be cancellable, e.g. if it's called
pthread_cancel(pthread_self()). the correct predicate to check is not
whether multiple threads have been invoked, but whether pthread_self
has been invoked.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
even a single-threaded program can be cancellable, e.g. if it's called
pthread_cancel(pthread_self()). the correct predicate to check is not
whether multiple threads have been invoked, but whether pthread_self
has been invoked.
</pre>
</div>
</content>
</entry>
<entry>
<title>report sem value overflows in sem_post</title>
<updated>2011-10-26T04:28:47+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-10-26T04:28:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=26120950e26478740a29fd0b1fd78a0bd6b880c8'/>
<id>26120950e26478740a29fd0b1fd78a0bd6b880c8</id>
<content type='text'>
this is not required by the standard, but it's nicer than corrupting
the state and rather inexpensive.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
this is not required by the standard, but it's nicer than corrupting
the state and rather inexpensive.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix typo in arm clone() asm</title>
<updated>2011-10-09T04:02:39+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-10-09T04:02:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=2b89e56c94c1ce4369a3c7a17304df17df1fa822'/>
<id>2b89e56c94c1ce4369a3c7a17304df17df1fa822</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>recovering ownerdead robust mutex must reset recursive lock count</title>
<updated>2011-10-03T04:27:47+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-10-03T04:27:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=5e977e8b48c6862767ea0a1255233600957c05db'/>
<id>5e977e8b48c6862767ea0a1255233600957c05db</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>simplify robust mutex unlock code path</title>
<updated>2011-10-03T04:19:05+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-10-03T04:19:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=b6f9974ad843b6b106db082fc44e710c0eb06e3b'/>
<id>b6f9974ad843b6b106db082fc44e710c0eb06e3b</id>
<content type='text'>
right now it's questionable whether this change is an improvement or
not, but if we later want to support priority inheritance mutexes, it
will be important to have the code paths unified like this to avoid
major code duplication.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
right now it's questionable whether this change is an improvement or
not, but if we later want to support priority inheritance mutexes, it
will be important to have the code paths unified like this to avoid
major code duplication.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix crash if pthread_mutex_unlock is called without ever locking</title>
<updated>2011-10-03T04:11:16+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-10-03T04:11:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=b8688ff87574fad6b3056443a5385010952fb243'/>
<id>b8688ff87574fad6b3056443a5385010952fb243</id>
<content type='text'>
this is valid for error-checking mutexes; otherwise it invokes UB and
would be justified in crashing.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
this is valid for error-checking mutexes; otherwise it invokes UB and
would be justified in crashing.
</pre>
</div>
</content>
</entry>
<entry>
<title>use count=0 instead of 1 for recursive mutex with only one lock reference</title>
<updated>2011-10-03T04:09:08+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-10-03T04:09:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=7fe58d3511387ab6c57909f6e4baef58acd6bd56'/>
<id>7fe58d3511387ab6c57909f6e4baef58acd6bd56</id>
<content type='text'>
this simplifies the code paths slightly, but perhaps what's nicer is
that it makes recursive mutexes fully reentrant, i.e. locking and
unlocking from a signal handler works even if the interrupted code was
in the middle of locking or unlocking.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
this simplifies the code paths slightly, but perhaps what's nicer is
that it makes recursive mutexes fully reentrant, i.e. locking and
unlocking from a signal handler works even if the interrupted code was
in the middle of locking or unlocking.
</pre>
</div>
</content>
</entry>
<entry>
<title>synchronize cond var destruction with exiting waits</title>
<updated>2011-10-03T02:58:28+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-10-03T02:58:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=5a2e18093725c3965486641f0ad0b61a44f7ed68'/>
<id>5a2e18093725c3965486641f0ad0b61a44f7ed68</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix failure-to-wake in rwlock unlock</title>
<updated>2011-10-01T13:11:35+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-10-01T13:11:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=b85fec2ded3f005b877e25b63215c0d09d4a9f7f'/>
<id>b85fec2ded3f005b877e25b63215c0d09d4a9f7f</id>
<content type='text'>
a reader unlocking the lock need only wake one waiter (necessarily a
writer, but a writer unlocking the lock must wake all waiters
(necessarily readers). if it only wakes one, the remainder can remain
blocked indefinitely, or at least until the first reader unlocks (in
which case the whole lock becomes serialized and behaves as a mutex
rather than a read lock).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
a reader unlocking the lock need only wake one waiter (necessarily a
writer, but a writer unlocking the lock must wake all waiters
(necessarily readers). if it only wakes one, the remainder can remain
blocked indefinitely, or at least until the first reader unlocks (in
which case the whole lock becomes serialized and behaves as a mutex
rather than a read lock).
</pre>
</div>
</content>
</entry>
<entry>
<title>fix excessive/insufficient wakes in __vm_unlock</title>
<updated>2011-09-28T23:45:37+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-09-28T23:45:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=de543b05c87d79a9313991810e9ee8ecdaad8f19'/>
<id>de543b05c87d79a9313991810e9ee8ecdaad8f19</id>
<content type='text'>
there is no need to send a wake when the lock count does not hit zero,
but when it does, all waiters must be woken (since all with the same
sign are eligible to obtain the lock).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
there is no need to send a wake when the lock count does not hit zero,
but when it does, all waiters must be woken (since all with the same
sign are eligible to obtain the lock).
</pre>
</div>
</content>
</entry>
</feed>
