On Sun 25 Jun 2023 04:56:29 PM +08, zhenwei pi wrote: > void throttle_timers_attach_aio_context(ThrottleTimers *tt, > AioContext *new_context) > { > - tt->timers[THROTTLE_TIMER_READ] = > - aio_timer_new(new_context, tt->clock_type, SCALE_NS, > - tt->timer_cb[THROTTLE_TIMER_READ], tt->timer_opaque); > - tt->timers[THROTTLE_TIMER_WRITE] = > - aio_timer_new(new_context, tt->clock_type, SCALE_NS, > - tt->timer_cb[THROTTLE_TIMER_WRITE], tt->timer_opaque); > + if (tt->timer_cb[THROTTLE_TIMER_READ]) { > + tt->timers[THROTTLE_TIMER_READ] = > + aio_timer_new(new_context, tt->clock_type, SCALE_NS, > + tt->timer_cb[THROTTLE_TIMER_READ], > tt->timer_opaque); > + } > + > + if (tt->timer_cb[THROTTLE_TIMER_WRITE]) { > + tt->timers[THROTTLE_TIMER_WRITE] = > + aio_timer_new(new_context, tt->clock_type, SCALE_NS, > + tt->timer_cb[THROTTLE_TIMER_WRITE], > tt->timer_opaque); > + } > }
If now any of the timers can be NULL, don't you want to add additional checks / assertions to (at least) throttle_schedule_timer() ? Berto