protected function attachTimesListener($pointer, $event, $limit, callable $listener)
{
$emitter = $this;
return function () use($emitter, $listener, $event, $pointer, &$limit) {
if (--$limit === 0) {
unset($limit);
unset($emitter->eventListeners[$event][$pointer]);
}
$args = func_get_args();
$this->getLoop()->onTick(function () use($listener, $args) {
call_user_func_array($listener, $args);
});
};
}