[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] a couple of questions about foreign functions (Modif
Re: [Chicken-users] a couple of questions about foreign functions (Modified by Valentyn Kamyshenko)
Fri, 23 Jan 2004 08:27:39 +0100
Opera7.21/Win32 M2 build 3218
Am Thu, 22 Jan 2004 01:51:38 -0800 hat Valentyn Kamyshenko
In general, IMHO, it is a serious problem. I personally would rather
prefer to live without threads (and without functionality that requires
them in chicken), but to have standard signal handling, use blocking I/O
calls in foreign functions etc.
That's understandable, but IMHO the whole idea of UNIX signals is something
that I consider somewhat broken. A signal handler can be called at any
completely out of context. This is not compatible with the execution model
that Chicken uses (unfortunately).
Probably, a compiler option? Is it achievable at all?
You mean a mode where signals may trigger Scheme signal handlers, even
in a blocking I/O operation, right?
Hmmm... Generally it should be possible to perform an out-of-context
call inside a signal handler (comparable to the way callbacks are
but IIRC there exist some restrictions on what system calls may be
invoked inside of a signal handler. So the signal handler should only
set some flag (indicating a pending signal) and then abort the I/O
operation in progress, which then should return to the caller and
let the usual interrupt-processing behaviour take place.
Is it possible in UNIX to abort a currently blocking I/O operation,
given a file-descriptor?