[Python-Dev] Signal-resistant code (was: Two random and nearly unrelated ideas)

Guido van Rossum guido@python.org
Wed, 04 Sep 2002 16:48:11 -0400

> Hmm, and when I think of it I don't think it's even possible to restart 
> safely. What if I do a read() on a socket, and I request more bytes 
> than the available physical memory (but less than VM, of course)? The 
> kernel simply doesn't have anywhere to store the bytes other than my 
> buffer, and if it has to return EINTR then >POOF< these bytes are gone 
> forever.

I think that if any bytes have already been copied into your buffer,
you don't get an EINTR, you get a short read.

--Guido van Rossum (home page: http://www.python.org/~guido/)