Rainer Weikusat <
rwei...@talktalk.net> writes:
> Something I've been doing quite a bit recently:
>
> ,----
> | sub query
> | {
> | my $done = $_[0];
> | my ($hndlr, $sk, $path);
> |
> | $sk = CaMgmt::CfgListener->new(SK);
> |
> | $hndlr = $muxer->add('hnet_reply', $sk, EPOLLIN,
> | sub {
> | $hndlr = undef;
> | handle_hnet_reply($sk, $done);
> | });
> `----
>
> The return value of this method is an object whose destructor will
> deregister the event handler. The passed subroutine will be invoked to
> handle the event. As it references $hndlr, the event will stay
> registered until the even handling routine clears it[*], ie, due to the
> circular reference, it's entirely self-sufficient wrt its
> lifecycle-management.