sub _start_wheel { # we've started our wheel and stashed it in the heap. # let's start a delayed event. $kernel->delay( '_wheel_alarm', 60 ); return; } sub _input_handler { # deal with input $heap->{timestamp} = time(); return; } sub _flushed_handler { # Looks like we sent some stuff $heap->{timestamp} = time(); return; } sub _wheel_alarm { my ($kernel,$heap) = @_[KERNEL,HEAP]; # ding dong if ( time() - $heap->{timestamp} > 300 ) { delete $heap->{socket_wheel}; # remove the socket } else { $kernel->delay( '_wheel_alarm', 60 ); } return; }