Hi, Gregory Marton <[EMAIL PROTECTED]> writes:
> Now that I've upgraded to 1.8.3 from 1.8.1, some old test cases are > failing. In particular: According to `NEWS', there were no signal-related changes. > (define (ensure body-lambda ensuring-lambda) > (dynamic-wind > (lambda () #t) > body-lambda > ensuring-lambda)) > > (define (with-sigaction signum handler flags lamb) > (let ((old-sigaction (sigaction signum))) > (if flags (sigaction signum handler flags) (sigaction signum handler)) > (ensure > lamb > (lambda () > (sigaction signum (car old-sigaction) (cdr old-sigaction)))))) Signal handlers are invoked asynchronously as system asyncs, and system asyncs are run whenever `SCM_TICK' is encountered in the C code. There doesn't seem to be any Scheme procedure to force the execution of system asyncs, but maybe you can try invoking LAMB above in `call-with-unblocked-asyncs' and/or adding a `(sleep 0)' right before it to force the execution of pending system asyncs. Let us know if it helps. Thanks, Ludovic.