Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re^3: Managing capture

by Anonymous Monk
on Feb 19, 2013 at 12:12 UTC ( #1019537=note: print w/ replies, xml ) Need Help??


in reply to Re^2: Managing capture
in thread Managing capture

Competence is always nice sure, but I don't understand how destructors help. They aren't invoked unless an object is destroyed, which it won't be if it paricipates in a cycle.

I think you understand pefectly :)

If you're accepting callbacks and storing them in an object, you can made a practice of using PadWalker and checking for closures

A slightly simpler check could be made using Devel::Refcount but why bother when PadWalker can do it :)


Comment on Re^3: Managing capture
Re^4: Managing capture
by jbert (Priest) on Feb 19, 2013 at 12:55 UTC

    Yes, that would work. However, the drawbacks of this to me are:

    1. the check happens at runtime, not compiletime
    2. it requires each method taking a callback to implement the cycle check. that might be in 3rd party code and so require additional wrapping etc.

      ...

      Yup,

      otoh, its cheap check (cheaper than universal competence )

      and simpler to write than a pragma like autovivification -- have you looked at that thing? it walks the perl op-tree using c --- scary :)

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1019537]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (9)
As of 2014-12-18 12:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (51 votes), past polls