[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: non-local exits are icky
> From: Michael Sperber <sperber@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
> Tom> The SRFI is slightly unclear but I understand the section
> Tom> "Signalling errors from external code" to mean that a call
> Tom> to something like SCHEME_ARGUMENT_TYPE_ERROR does not
> Tom> return to its caller, but rather directly to Scheme.
> Tom> I gather also that SCHEME_CALL may result in a non-local
> Tom> exit past the caller.
> Tom> Since the mechanism of these non-local exits is not
> Tom> specified and can not be modified by C code, the FFI
> Tom> contains no provision for them to perform unwind protection
> Tom> --- that's a serious omission.
> But SCHEME_CALL takes you back to Scheme, where you can use
> I think I misunderstand your point.
A sketch that illustrates the issue:
fd = open ("somefile", O_RDONLY, 0);
SCHEME_CALL ( [...] );