void luasandbox_timer_destroy(luasandbox_timer_set * lts) { luasandbox_timer_stop(lts); if (lts->profiler_running) { luasandbox_timer_stop_one(lts->profiler_timer, NULL); lts->profiler_running = 0; } if (lts->function_counts) { zend_hash_destroy(lts->function_counts); lts->function_counts = NULL; } }
void luasandbox_timer_set_limit(luasandbox_timer_set * lts, struct timespec * timeout) { int was_running = 0; int was_paused = luasandbox_timer_is_paused(lts); if (lts->is_running) { was_running = 1; luasandbox_timer_stop(lts); } lts->limiter_remaining = lts->limiter_limit = *timeout; luasandbox_timer_zero(<s->limiter_expired_at); if (was_running) { luasandbox_timer_start(lts); } if (was_paused) { luasandbox_timer_pause(lts); } }
void luasandbox_timer_set_limits(luasandbox_timer_set * lts, struct timespec * normal_timeout, struct timespec * emergency_timeout) { int was_running = 0; int was_paused = luasandbox_timer_is_paused(lts); if (lts->is_running) { was_running = 1; luasandbox_timer_stop(lts); } lts->normal_remaining = lts->normal_limit = *normal_timeout; lts->emergency_remaining = lts->emergency_limit = *emergency_timeout; luasandbox_timer_zero(<s->normal_expired_at); if (was_running) { luasandbox_timer_start(lts); } if (was_paused) { luasandbox_timer_pause(lts); } }