On 2007-03-27 08:11:51 -0700, Daniel Burrows wrote: > Thomas, > > I've gone over an strace provided by Vincent, and it looks pretty > clear that all the write() system calls are from a single thread -- and > the writes that overlap each other on stdout are actually just two > writes, being called in sequence. The fact that they end up interleaved > seems like it kinda violates the atomicity of write().
Note that another strace already has interleaved data in write(): [...] | 001e0 33 37 6d 1b 5b 32 36 20 41 63 74 69 1b 6f 6e 5b 37m.[26 Acti.on[ | | 001f0 73 20 20 55 6e 64 6f 32 20 36 20 64 1b 5b 33 37 s Undo2 6 d.[37 | | 00200 6d 1b 5b 34 31 6d 1b 5b 6d 1b 5b 33 37 6d 1b 5b m.[41m.[ m.[37m.[ | | 00210 34 30 6d 1b 5b 4b 1b 5b 32 37 64 1b 5b 4b 1b 5b 40m.[K.[ 27d.[K.[ | | 00220 32 38 64 6d 1b 5b 32 38 1b 64 5b 1b 5b 34 34 6d 28dm.[28 .d[.[44m | | 00230 1b 5b 31 6d 50 61 63 6b 61 67 65 20 20 52 65 73 .[1mPack age Res | | 00240 6f 6c 76 32 65 38 72 64 1b 5b 6d 1b 5b 33 37 6d olv2e8rd .[m.[37m | [...] -- Vincent Lefèvre <[EMAIL PROTECTED]> - Web: <http://www.vinc17.org/> 100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/> Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)