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