http://www.perlmonks.org?node_id=1081658


in reply to Re: PSGI, Plack, Twiggy, AnyEvent and SockJS... I need help
in thread PSGI, Plack, Twiggy, AnyEvent and SockJS... I need help

I believe you meant to say:
my $w; sub { ... $w = AnyEvent->timer( ... }
ie: you want $w outside of builder

Replies are listed 'Best First'.
Re^3: PSGI, Plack, Twiggy, AnyEvent and SockJS... I need help
by Anonymous Monk on Apr 09, 2014 at 15:23 UTC
    On another glance
    my $w; $w = AnyEvent->timer(
    is correct, but
    $w_cond->send();
    within your timer cb is not what you want. From AnyEvent:
    $w->recv; # enters "main loop" till $condvar gets ->send
    You want to ->recv when you are done with things. Adding another timeout timer for example would do the trick allowing your timer to run couple of times and eventually terminating your timer and the main loop after 30 seconds:
    my $w; $w = AnyEvent->timer( after => 0, interval => 5, cb => sub { $session->write('5 seconds have passed'); } ); my $timeout_timer; $timeout_timer = AnyEvent->timer( after => 0, interval => 30, cb => sub { undef $w; undef $timeout_timer; $session->write('Timeout after 30 seconds'); $w_cond->send(); } );