interval_timer_t *it = timer->private_info;
uint64_t u64 = 0;
+ if (!it) {
+ return SWITCH_STATUS_GENERR;
+ }
+
if (read(it->fd, &u64, sizeof(u64)) < 0) {
return SWITCH_STATUS_GENERR;
} else {
struct itimerspec val;
int diff;
+ if (!it) {
+ return SWITCH_STATUS_GENERR;
+ }
+
timerfd_gettime(it->fd, &val);
diff = val.it_interval.tv_nsec / 1000;
static switch_status_t _timerfd_destroy(switch_timer_t *timer)
{
interval_timer_t *it = timer->private_info;
- int rc;
+ int rc = SWITCH_STATUS_GENERR;
+
+ if (it) {
+ rc = timerfd_stop_interval(it);
+ }
- rc = timerfd_stop_interval(it);
return rc;
}