From: Bruno Haible <bruno@cl...> - 2004-03-24 13:25:16
> I did some work in the last year trying to make as many errors as
> possible recoverable.
> what is lacking at this time is a "retry" option for all OS errors.
> E.g., when writing - or reading - a network file, the connection may be
> suddenly dropped and I would get
> *** - UNIX error 136: No such host or network path
> (this is cygwin).
> the connection will be restored instantaneously, but lisp computation
> will have to be restarted.
For read() and write() on a socket, I don't see how a "retry" would make
sense, because you cannot know how many bytes have been read/written before
the error occurred. I.e. the socket stream is in an undefined state.
For all other errors, it's possible: a matter of putting all the necessary
Lisp objects safe on the STACK, because many of the low-level I/O functions
will now have to be marked as "can trigger GC".