On Tue, 2005-05-17 at 16:58 +0100, Jeremy Harris wrote:
> Running strace against a 4.50 delivery process I see:
>
> read(3, "LH+9sNJ1a1QaLik2kkw0v2Ff7vemK1TR"..., 8192) = 8192
> alarm(300) = 0
> write(6, "CY673bSDcJtW0m0mGk2k2EoTpV+6ad27"..., 8190) = 8190
> alarm(0) = 300
> read(3, "Ttv0rVL/a//3e6bSdJtJ\ntBdE3bxsNJ/"..., 8192) = 8192
> alarm(300) = 0
> write(6, "L9fx7b06sNJhpMNJtLiGztTP4hOI/vhu"..., 8190) = 8190
> alarm(0) = 300
>
> Could a select(or poll) for writability be used instead of
> alarm, saving one syscall/cycle?
I don't think writability guarantees that a 8 KiB block can be written
without blocking (think NFS).
I would worry more about the unaligned writes, but I think the proper
fix (though painful to implement) is to make Exim use wireformat in its
spool (ie. dot-stuffed and with CRLF intact)
--
Kjetil T.