The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Devel::Leak::Cb - Detect leaked callbacks

VERSION

Version 0.04

SYNOPSIS

    use Devel::Leak::Cb;
    
    AnyEvent->timer( after => 1, cb => cb {
        ...
    });
    
    # If $ENV{DEBUG_CB} is true and callback not destroyed till END, the you'll be noticed

DESCRIPTION

By default, cb { .. } will be rewritten as sub { .. } using Devel::Declare and will give no additional cost at runtime

When $ENV{DEBUG_CB} will be set, then all cb {} declarations will be counted, and if some of them will not be destroyed till the END stage, you'll be warned

EXPORT

Exports a single function: cb {}, which would be rewritten as sub {} when $ENV{DEBUG_CB} is not in effect

If DEBUG_CB > 1 and Devel::FindRef is installed, then output will include reference tree of leaked callbacks

FUNCTIONS

cb {}

Create anonymous callback

        my $cb = cb {};

cb name {}

Create named callback with static name (Have no effect without $ENV{DEBUG_CB})

        my $cb = cb mycallback {};

cb $name {}

Create named callback with dynamic name (Have no effect without $ENV{DEBUG_CB}) $name could me only simple scalar identifier, without any special symbols

        my $cb = cb $name {};
        my $cb = cb $full::name {};

cb 'name' {}

Create named callback with dynamic name (Have no effect without $ENV{DEBUG_CB}) Currently supported only ' and ". Quote-like operators support will be later

        my $cb = cb 'name' {};
        my $cb = cb "name.$val" {};

COUNT

        You may call C<Devel::Leak::Cb::COUNT()> Manually to check state. All leaked callbacks will be warned. Noop without C<$ENV{DEBUG_CB}>

AUTHOR

Mons Anderson, <mons at cpan.org>

BUGS

Please report any bugs or feature requests to bug-devel-leak-cb at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Devel-Leak-Cb. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc Devel::Leak::Cb

You can also look for information at:

COPYRIGHT & LICENSE

Copyright 2009 Mons Anderson, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.