<feed xmlns='http://www.w3.org/2005/Atom'>
<title>musl/src/thread, branch v0.7.9</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 initial stack alignment in new threads on x86_64</title>
<updated>2011-04-22T22:48:57+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-04-22T22:48:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=e6cc1d6c0e66970c7445df4f16a729f019d30efd'/>
<id>e6cc1d6c0e66970c7445df4f16a729f019d30efd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix minor bugs due to incorrect threaded-predicate semantics</title>
<updated>2011-04-21T01:41:45+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-04-21T01:41:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=870cc679771f776333953b2a990a107393d9d0fd'/>
<id>870cc679771f776333953b2a990a107393d9d0fd</id>
<content type='text'>
some functions that should have been testing whether pthread_self()
had been called and initialized the thread pointer were instead
testing whether pthread_create() had been called and actually made the
program "threaded". while it's unlikely any mismatch would occur in
real-world problems, this could have introduced subtle bugs. now, we
store the address of the main thread's thread descriptor in the libc
structure and use its presence as a flag that the thread register is
initialized. note that after fork, the calling thread (not necessarily
the original main thread) is the new main thread.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
some functions that should have been testing whether pthread_self()
had been called and initialized the thread pointer were instead
testing whether pthread_create() had been called and actually made the
program "threaded". while it's unlikely any mismatch would occur in
real-world problems, this could have introduced subtle bugs. now, we
store the address of the main thread's thread descriptor in the libc
structure and use its presence as a flag that the thread register is
initialized. note that after fork, the calling thread (not necessarily
the original main thread) is the new main thread.
</pre>
</div>
</content>
</entry>
<entry>
<title>move some more code out of pthread_create.c</title>
<updated>2011-04-20T03:09:14+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-04-20T03:09:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=a6054e3c94aa0491d7366e4b05ae0d73f661bfe2'/>
<id>a6054e3c94aa0491d7366e4b05ae0d73f661bfe2</id>
<content type='text'>
this also de-uglifies the dummy function aliasing a bit.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
this also de-uglifies the dummy function aliasing a bit.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix uninitialized waiters field in semaphores</title>
<updated>2011-04-19T17:16:59+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-04-19T17:16:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=4f24994920cf3c8a9a6f60d4573a7673a3095b02'/>
<id>4f24994920cf3c8a9a6f60d4573a7673a3095b02</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>recheck cancellation disabled flag after syscall returns EINTR</title>
<updated>2011-04-19T00:50:37+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-04-19T00:50:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=be2e06d347fdb83e9c4f57e57fa29b78f6276a0c'/>
<id>be2e06d347fdb83e9c4f57e57fa29b78f6276a0c</id>
<content type='text'>
we already checked before making the syscall, but it's possible that a
signal handler interrupted the blocking syscall and disabled
cancellation, and that this is the cause of EINTR. in this case, the
old behavior was testably wrong.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
we already checked before making the syscall, but it's possible that a
signal handler interrupted the blocking syscall and disabled
cancellation, and that this is the cause of EINTR. in this case, the
old behavior was testably wrong.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix typo in x86_64 cancellable syscall asm</title>
<updated>2011-04-17T23:25:17+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-04-17T23:25:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=1bc44a473431228f5b46652740cb967a0de16e9e'/>
<id>1bc44a473431228f5b46652740cb967a0de16e9e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>pthread_exit is not supposed to affect cancellability</title>
<updated>2011-04-17T21:09:41+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-04-17T21:09:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=2afed79f15a32e9616a27f9d327cef0cefbbaab1'/>
<id>2afed79f15a32e9616a27f9d327cef0cefbbaab1</id>
<content type='text'>
if the exit was caused by cancellation, __cancel has already set these
flags anyway.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
if the exit was caused by cancellation, __cancel has already set these
flags anyway.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix pthread_exit from cancellation handler</title>
<updated>2011-04-17T21:06:05+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-04-17T21:06:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=1ebde9c3a228e8daa4bdba98046556b4b6829f5e'/>
<id>1ebde9c3a228e8daa4bdba98046556b4b6829f5e</id>
<content type='text'>
cancellation frames were not correctly popped, so this usage would not
only loop, but also reuse discarded and invalid parts of the stack.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
cancellation frames were not correctly popped, so this usage would not
only loop, but also reuse discarded and invalid parts of the stack.
</pre>
</div>
</content>
</entry>
<entry>
<title>clean up handling of thread/nothread mode, locking</title>
<updated>2011-04-17T20:53:54+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-04-17T20:53:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=9080cc153cc2b09881c3245becbd68534db18d7c'/>
<id>9080cc153cc2b09881c3245becbd68534db18d7c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>debloat: use __syscall instead of syscall where possible</title>
<updated>2011-04-17T20:32:15+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-04-17T20:32:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=eb0e8fa0b1960cff4bd65ebefc798f70273b0bc9'/>
<id>eb0e8fa0b1960cff4bd65ebefc798f70273b0bc9</id>
<content type='text'>
don't waste time (and significant code size due to function call
overhead!) setting errno when the result of a syscall does not matter
or when it can't fail.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
don't waste time (and significant code size due to function call
overhead!) setting errno when the result of a syscall does not matter
or when it can't fail.
</pre>
</div>
</content>
</entry>
</feed>
