On Sun, Sep 05, 2010 at 03:29:48PM -0000, Parrot wrote:
> Comment(by nwellnhof):
> 
>  There seem to be two unrelated problems. The following PIR loops
>  infinitely, no matter if it's run directly or compiled:
> 
>  {{{
>  .sub main :main
>      push_eh handler
>      exit 0
>  handler:
>      .tailcall exit_handler()
>  .end
> 
>  .sub exit_handler
>      say "at exit"
>      null $P0
>      say $P0
>  .end
>  }}}


The handler that is being set in 'main' is never being removed--
i.e, there's no 'pop_eh'.  Thus when exit_handler() is 
called, it's generating a "Null PMC in say" exception
which then invokes the handler (which generates a
"Null PMC in say exception, which invokes the handler...).

You probably need a "pop_eh" right after 'handler:'.

Pm
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets

Reply via email to