Andrew Dunstan <andrew@dunslane.net> writes:
> Alvaro Herrera wrote:
>> syslog uses a nonblocking file descriptor without a retry loop to
>> implement their logic. I see no reason we couldn't do that ourselves.
>> Mixing it with regular blocking code could turn out to be nontrivial,
>> but I don't think it's impossible.
> Well, for CSV logs it's a complete non-starter. We go to quite a deal of
> trouble to ensure we don't miss messages, because if we do the CSVs will
> be hopelessly corrupted.
You could make it work if write() had all-or-nothing semantics, so that
you could write or discard a whole logical message at once. But I don't
believe that's guaranteed for any interesting cases.
regards, tom lane