make stdio open, read, and write operations cancellation points
authorRich Felker <dalias@aerifal.cx>
Thu, 2 Feb 2012 05:11:29 +0000 (00:11 -0500)
committerRich Felker <dalias@aerifal.cx>
Thu, 2 Feb 2012 05:11:29 +0000 (00:11 -0500)
commit58165923890865a6ac042fafce13f440ee986fd9
tree1a2e608393566ba3184e95f224cbd5a538e275a2
parent4948a24df21c1e80bedc1f302547c9cb26e4dbfe
make stdio open, read, and write operations cancellation points

it should be noted that only the actual underlying buffer flush and
fill operations are cancellable, not reads from or writes to the
buffer. this behavior is compatible with POSIX, which makes all
cancellation points in stdio optional, and it achieves the goal of
allowing cancellation of a thread that's "stuck" on IO (due to a
non-responsive socket/pipe peer, slow/stuck hardware, etc.) without
imposing any measurable performance cost.
src/stdio/__stdio_read.c
src/stdio/__stdio_write.c
src/stdio/fopen.c