On Thu, Aug 18, 2011 at 6:10 PM, Stephan Beal <sgb...@googlemail.com> wrote:

> On Thu, Aug 18, 2011 at 5:27 PM, David Garfield <
> garfi...@irving.iisd.sra.com> wrote:
>
>> I HOPE that an interrupt in a large interrupted write will NOT return
>
> EINTR, because if it does, the partial write is screwed up.
>>
>
> i hope so, too! :-D
>

It would seem that at least one environment does allow that behaviour. From
the Linux write(2) man pages:

----
CONFORMING TO
       SVr4, 4.3BSD, POSIX.1-2001.

       Under SVr4 a write may be interrupted and return EINTR at any point,
not just before any data is written.
----

So this just might actually (potentially) affect some sqlite3 users. i don't
know if Solaris currently uses SysV or posix semantics, but Solaris was once
known as SVr4 (SysV, v.4)?

If that is indeed the case, the current code will cause corruption on an
EINTR on such platforms because the EINTR handling does not account for a
non-0 write.

http://kb.iu.edu/data/agjs.html
http://en.wikipedia.org/wiki/System_V
The German page has release dates and easier-to-read inheritance details:
http://de.wikipedia.org/wiki/System_V
http://en.wikipedia.org/wiki/Solaris_(operating_system)

-- 
----- stephan beal
http://wanderinghorse.net/home/stephan/
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to