public function setTimeout($callback, $delay)
{
$args = func_get_args();
array_shift($args);
//skip $callback
array_shift($args);
//skip $delay
$timeout_id = uv_timer_init();
uv_timer_start($timeout_id, $delay, 0, function ($stat) use($callback, $args) {
call_user_func_array($callback, $args);
});
return $timeout_id;
}