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]);
}
return call_user_func_array($listener, func_get_args());
};
}