<feed xmlns='http://www.w3.org/2005/Atom'>
<title>musl/src/process, branch v0.7.12</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 backwards posix_spawn file action order</title>
<updated>2011-05-29T16:58:02+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-05-29T16:58:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=f48832ee15027763826c8a7ff9eeed3fc06bb499'/>
<id>f48832ee15027763826c8a7ff9eeed3fc06bb499</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>add accidentally-omitted file needed for posix_spawn file actions</title>
<updated>2011-05-29T03:31:11+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-05-29T03:31:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=dd45edb5ff6198493edf1315d3e4e6ffc7b96447'/>
<id>dd45edb5ff6198493edf1315d3e4e6ffc7b96447</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>add file actions support to posix_spawn</title>
<updated>2011-05-29T03:30:47+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-05-29T03:30:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=a0ae0b09368e6dbfa82860187dcd6fdf86d86fee'/>
<id>a0ae0b09368e6dbfa82860187dcd6fdf86d86fee</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>posix_spawn: honor POSIX_SPAWN_SETSIGDEF flag</title>
<updated>2011-05-28T22:39:43+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-05-28T22:39:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=d6c0c9784615ddb316ace52f3a9e2f025214ba2a'/>
<id>d6c0c9784615ddb316ace52f3a9e2f025214ba2a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>initial implementation of posix_spawn</title>
<updated>2011-05-28T22:36:30+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-05-28T22:36:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=c97f0d998cae23472ea30564663a8612dcfb6f83'/>
<id>c97f0d998cae23472ea30564663a8612dcfb6f83</id>
<content type='text'>
file actions are not yet implemented, but everything else should be
mostly complete and roughly correct.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
file actions are not yet implemented, but everything else should be
mostly complete and roughly correct.
</pre>
</div>
</content>
</entry>
<entry>
<title>correct variadic prototypes for execl* family</title>
<updated>2011-04-27T20:06:33+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-04-27T20:06:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=e6bac87d0eaab116878a04874bc5b6a3496cb938'/>
<id>e6bac87d0eaab116878a04874bc5b6a3496cb938</id>
<content type='text'>
the old versions worked, but conflicted with programs which declared
their own prototypes and generated warnings with some versions of gcc.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
the old versions worked, but conflicted with programs which declared
their own prototypes and generated warnings with some versions of gcc.
</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>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>overhaul pthread cancellation</title>
<updated>2011-04-17T15:43:03+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-04-17T15:43:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=feee98903cd8119d9a3db62589246a940f44a9f5'/>
<id>feee98903cd8119d9a3db62589246a940f44a9f5</id>
<content type='text'>
this patch improves the correctness, simplicity, and size of
cancellation-related code. modulo any small errors, it should now be
completely conformant, safe, and resource-leak free.

the notion of entering and exiting cancellation-point context has been
completely eliminated and replaced with alternative syscall assembly
code for cancellable syscalls. the assembly is responsible for setting
up execution context information (stack pointer and address of the
syscall instruction) which the cancellation signal handler can use to
determine whether the interrupted code was in a cancellable state.

these changes eliminate race conditions in the previous generation of
cancellation handling code (whereby a cancellation request received
just prior to the syscall would not be processed, leaving the syscall
to block, potentially indefinitely), and remedy an issue where
non-cancellable syscalls made from signal handlers became cancellable
if the signal handler interrupted a cancellation point.

x86_64 asm is untested and may need a second try to get it right.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
this patch improves the correctness, simplicity, and size of
cancellation-related code. modulo any small errors, it should now be
completely conformant, safe, and resource-leak free.

the notion of entering and exiting cancellation-point context has been
completely eliminated and replaced with alternative syscall assembly
code for cancellable syscalls. the assembly is responsible for setting
up execution context information (stack pointer and address of the
syscall instruction) which the cancellation signal handler can use to
determine whether the interrupted code was in a cancellable state.

these changes eliminate race conditions in the previous generation of
cancellation handling code (whereby a cancellation request received
just prior to the syscall would not be processed, leaving the syscall
to block, potentially indefinitely), and remedy an issue where
non-cancellable syscalls made from signal handlers became cancellable
if the signal handler interrupted a cancellation point.

x86_64 asm is untested and may need a second try to get it right.
</pre>
</div>
</content>
</entry>
<entry>
<title>speed up threaded fork</title>
<updated>2011-04-12T21:52:14+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2011-04-12T21:52:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=e2915eeeea244d3818d5eb7532ed35c6cf43c8fd'/>
<id>e2915eeeea244d3818d5eb7532ed35c6cf43c8fd</id>
<content type='text'>
after fork, we have a new process and the pid is equal to the tid of
the new main thread. there is no need to make two separate syscalls to
obtain the same number.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
after fork, we have a new process and the pid is equal to the tid of
the new main thread. there is no need to make two separate syscalls to
obtain the same number.
</pre>
</div>
</content>
</entry>
</feed>
