bfdd: use THREAD_OFF() instead of thread_cancel()

Use a standardized function to cancel threads instead of hand rolling
our own.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
This commit is contained in:
Rafael Zalamena 2018-09-05 12:27:52 -03:00
parent 2f11c53f55
commit 8529e18048
2 changed files with 14 additions and 34 deletions

View File

@ -420,27 +420,27 @@ ssize_t bfd_recv_ipv6(int sd, uint8_t *msgbuf, size_t msgbuflen, uint8_t *ttl,
static void bfd_sd_reschedule(int sd)
{
if (sd == bglobal.bg_shop) {
bglobal.bg_ev[0] = NULL;
THREAD_OFF(bglobal.bg_ev[0]);
thread_add_read(master, bfd_recv_cb, NULL, bglobal.bg_shop,
&bglobal.bg_ev[0]);
} else if (sd == bglobal.bg_mhop) {
bglobal.bg_ev[1] = NULL;
THREAD_OFF(bglobal.bg_ev[1]);
thread_add_read(master, bfd_recv_cb, NULL, bglobal.bg_mhop,
&bglobal.bg_ev[1]);
} else if (sd == bglobal.bg_shop6) {
bglobal.bg_ev[2] = NULL;
THREAD_OFF(bglobal.bg_ev[2]);
thread_add_read(master, bfd_recv_cb, NULL, bglobal.bg_shop6,
&bglobal.bg_ev[2]);
} else if (sd == bglobal.bg_mhop6) {
bglobal.bg_ev[3] = NULL;
THREAD_OFF(bglobal.bg_ev[3]);
thread_add_read(master, bfd_recv_cb, NULL, bglobal.bg_mhop6,
&bglobal.bg_ev[3]);
} else if (sd == bglobal.bg_echo) {
bglobal.bg_ev[4] = NULL;
THREAD_OFF(bglobal.bg_ev[4]);
thread_add_read(master, bfd_recv_cb, NULL, bglobal.bg_echo,
&bglobal.bg_ev[4]);
} else if (sd == bglobal.bg_echov6) {
bglobal.bg_ev[5] = NULL;
THREAD_OFF(bglobal.bg_ev[5]);
thread_add_read(master, bfd_recv_cb, NULL, bglobal.bg_echov6,
&bglobal.bg_ev[5]);
}

View File

@ -49,8 +49,7 @@ void bfd_recvtimer_update(struct bfd_session *bs)
#endif /* BFD_EVENT_DEBUG */
/* Remove previous schedule if any. */
if (bs->recvtimer_ev)
bfd_recvtimer_delete(bs);
bfd_recvtimer_delete(bs);
thread_add_timer_tv(master, bfd_recvtimer_cb, bs, &tv,
&bs->recvtimer_ev);
@ -70,8 +69,7 @@ void bfd_echo_recvtimer_update(struct bfd_session *bs)
#endif /* BFD_EVENT_DEBUG */
/* Remove previous schedule if any. */
if (bs->echo_recvtimer_ev)
bfd_echo_recvtimer_delete(bs);
bfd_echo_recvtimer_delete(bs);
thread_add_timer_tv(master, bfd_echo_recvtimer_cb, bs, &tv,
&bs->echo_recvtimer_ev);
@ -91,8 +89,7 @@ void bfd_xmttimer_update(struct bfd_session *bs, uint64_t jitter)
#endif /* BFD_EVENT_DEBUG */
/* Remove previous schedule if any. */
if (bs->xmttimer_ev)
bfd_xmttimer_delete(bs);
bfd_xmttimer_delete(bs);
thread_add_timer_tv(master, bfd_xmt_cb, bs, &tv, &bs->xmttimer_ev);
}
@ -111,8 +108,7 @@ void bfd_echo_xmttimer_update(struct bfd_session *bs, uint64_t jitter)
#endif /* BFD_EVENT_DEBUG */
/* Remove previous schedule if any. */
if (bs->echo_xmttimer_ev)
bfd_echo_xmttimer_delete(bs);
bfd_echo_xmttimer_delete(bs);
thread_add_timer_tv(master, bfd_echo_xmt_cb, bs, &tv,
&bs->echo_xmttimer_ev);
@ -120,36 +116,20 @@ void bfd_echo_xmttimer_update(struct bfd_session *bs, uint64_t jitter)
void bfd_recvtimer_delete(struct bfd_session *bs)
{
if (bs->recvtimer_ev == NULL)
return;
thread_cancel(bs->recvtimer_ev);
bs->recvtimer_ev = NULL;
THREAD_OFF(bs->recvtimer_ev);
}
void bfd_echo_recvtimer_delete(struct bfd_session *bs)
{
if (bs->echo_recvtimer_ev == NULL)
return;
thread_cancel(bs->echo_recvtimer_ev);
bs->echo_recvtimer_ev = NULL;
THREAD_OFF(bs->echo_recvtimer_ev);
}
void bfd_xmttimer_delete(struct bfd_session *bs)
{
if (bs->xmttimer_ev == NULL)
return;
thread_cancel(bs->xmttimer_ev);
bs->xmttimer_ev = NULL;
THREAD_OFF(bs->xmttimer_ev);
}
void bfd_echo_xmttimer_delete(struct bfd_session *bs)
{
if (bs->echo_xmttimer_ev == NULL)
return;
thread_cancel(bs->echo_xmttimer_ev);
bs->echo_xmttimer_ev = NULL;
THREAD_OFF(bs->echo_xmttimer_ev);
}