On Sat, 25 Jan 2014, Darren Tucker wrote: > Maybe there's something wrapping write() on your system too? Try adding > this to the start of atomicio.c:atomicio6(): > > printf(stderr, "read %x write %x argument %x\n", read, vwrite, f); > > then compile it and run a small scp: > > $ ./scp testfile localhost:/tmp/ > read b73eced0 write b73ecf50 argument b73eced0 > > The patch below makes the first argument to atomicio an int rather than > a function pointer. > > On the plus side: it also allows the removal of some hacks around > vwrite/writev. On the minus side: it's a large change albeit mostly > mechanical. IMO it would be better to s/atomicio[(v]*/_/ - i.e. do a separate atomicio_read and atomicio_write (that could use the flags internally). -d