Discussion:
[perl #56458] Failure to promote RetContinuation objects
(too old to reply)
Bob Rogers
2008-06-30 02:29:37 UTC
Permalink
# New Ticket Created by Bob Rogers
# Please include the string: [perl #56458]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=56458 >


Every RetContinuation in the active call chain must be promoted to a
full Continuation by the act of taking an explicit continuation, lest
the RetContinuation recycle the context on return when we can still
return to it afterwards. For some reason, this does not happen in the
particular test case added by the attached patch. However, I have been
unable to fix it, because the obvious fix (also in the patch) breaks the
build (in r28794) rather horribly. So, I'm submitting this ticket for
the record, and will continue working on it when I have more time. (If
somebody wants to find out for which revision this last worked, that
would be a big help. It's possible that this has never worked; I tend
to doubt it, but don't bother going back more than three years.)

-- Bob Rogers
http://rgrjr.dyndns.org/
Patrick R. Michaud
2008-12-03 15:52:24 UTC
Permalink
I think this is fixed in r33451. Can anyone confirm?
If nobody speaks up in a few days, we should close this ticket.
I tried the test code in RT #56458 and if I remove the 'pop_eh'
it appears to work correctly in r33451. The 'pop_eh' has to
be removed because otherwise the context no longer has an exception
handler in effect at the point where the continuation is invoked.

Perhaps the continuation is expected to keep track of the handlers
in effect at the time the continuation is taken -- if so, I
suspect we need a lot more design/code work.

In the meantime, I agree that the specific issue raised by this
ticket is fixed in r33451, so we can close the ticket.

Pm

Loading...