Jeff Clites <[EMAIL PROTECTED]> wrote: > But anyway, I thought the call to Parrot_sigaction(SIGINT, ...) inside > of Parrot_init_signals() was just for testing purposes anyway.
It's currently of course for testing only, w/o much usage or even correctness, and it's linux only for now. But - as Dan did say - the plan for Parrot is to install signal handlers by default. As ponie isn't running a Parrot ops-loop it never sees the generated exit event. For now there are two workarounds: a) disable the Parrot_sigaction line b) check for Parrot events static int do_exit(int code, void *interp) { _exit(code); } static opcode_t* run( Parrot_Interp interpreter, opcode_t *cur_op, opcode_t *start) { ... Parrot_on_exit(do_exit, (void*)interpreter); while (count--) { if (! (count & 0xfff)) { Parrot_do_check_events(interpreter, NULL); printf("."); fflush(stdout); } make_a_pmc(interpreter); } ... This is a snipped from the stress example program I posted some days ago with an additional check if events are to be handled. Both functions might not be in the extension interface[1]. Signals are converted to Parrot events and in the case of a program termination signal get broadcasted to all running interpreters. [1] BTW: Why does Ponie use the rather limited extension interface? > JEff leo