[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Scheme-reports] valid implementation of call-with-input-file?
-----BEGIN PGP SIGNED MESSAGE-----
On 08/20/2012 11:33 AM, Andy Wingo wrote:
> Briefly, as I'd like to be to-the-point regarding WG1's work:
> call-with-input-file is not a good abstraction, because it can easily
> leaks FDs on exceptional exit, and is prevented from doing something
> more sensible.
> I want them both, but given a choice I would rather have a useful
> call-with-input-file (etc) than raise-continuable, in the small r7rs.
But if we omit raise-continuable, people can still make their own. What
if somebody writes a coroutine library using call/cc and one of the
coroutines uses call-with-input-file, as coroutines are often used for
producer/consumer relationships and files make good producers of input
data? Making call-with-input-file close FDs on all forms of exit will
break that instantly, while leaking FDs until a future garbage
collection cycle will at least only MAYBE fail EVENTUALLY :-)
There might be a middle ground with call-with-input-file where one
closes the FD on exit but replaces it with a (path, offset) pair so it
can be re-opened and re-seeked on re-entry, which then just trades off
breaking access to special files, which is at least a much smaller
issue... But still ugly!
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
-----END PGP SIGNATURE-----
Scheme-reports mailing list