[Ecls-list] Threads and signal masks (Was: Special symbols ... locking or thread-local bindings)

Matthew Mondor mm_lists at pulsar-zone.net
Thu Aug 4 18:24:10 UTC 2011

On Tue, 2 Aug 2011 22:06:41 +0200
Juan Jose Garcia-Ripoll <juanjose.garciaripoll at googlemail.com> wrote:

> (ext:catch-signal ext:+sigpipe+ nil) ;; Global
> (ext:catch-signal ext:+sigpipe+ nil :local t) ;; Thread local

I initially tried using the first form for a global effect.
Unfortunately, it seems like the generated C is wrong:

        (void)si_catch_signal(MAKE_FIXNUM(13),Cnil) /*  CATCH-SIGNAL  */;

Which results in a C compiler error:

ecl-server2.c: In function 'L19bind_socket':
ecl-server2.c:839: error: too few arguments to function 'si_catch_signal'

and effectively, the prototype is:

src/h/external.h:extern ECL_API cl_object si_catch_signal(cl_narg narg, cl_object signal, cl_object state, ...);

When using the second form, another error is generated, but this time
an ECL compiler one:

;;; Error:
;;;   in file ecl-server2.lisp, position 7431
;;;   at (DEFUN BIND-SOCKET ...)
;;;   * Wrong number of arguments for function EXT:CATCH-SIGNAL


More information about the ecl-devel mailing list