On Wed, Aug 8, 2012 at 10:52 AM, Jerry James <loganje...@gmail.com> wrote:
> But signal handlers have to match handler_fn_prototype, which means
> accepting either 1 or 3 arguments, and SI:WAIT-FOR-ALL-PROCESSES
> accepts zero arguments.  What's the best way to fix this?
>
> By the way, it looks like the other elements of known_signals with
> non-nil handlers also specify functions that don't take the correct
> argument list.  That's SI:TERMINAL-INTERRUPT for SIGINT,
> EXT:ILLEGAL-INSTRUCTION for SIGILL, and EXT:SEGMENTATION-VIOLATION for
> SIGBUS and SIGSEGV.

That last part is nonsense.  I should have dug a little deeper first.
I'm trying to build with ECL_THREADS, and this code in
handle_signal_now() (unixint.d) appears to be the problem:

        case t_symbol:
                /*
                 * When we bind a handler to a signal, it may either
                 * be a function, a symbol denoting a function or
                 * a symbol denoting a condition.
                 */
                if (cl_find_class(2, signal_code, ECL_NIL) != ECL_NIL)
                        cl_cerror(2, str_ignore_signal, signal_code);
#ifdef ECL_THREADS
                else if (!Null(process))
                        _ecl_funcall3(signal_code, @':process', process);
#endif
                else
                        _ecl_funcall1(signal_code);
                break;

So SI:WAIT-FOR-ALL-PROCESSES needs to accept a :process keyword
argument when ECL_THREADS is defined.
-- 
Jerry James
http://www.jamezone.org/

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list

Reply via email to