summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bgpd/bgp_fsm.c10
-rw-r--r--bgpd/bgp_fsm.h2
-rw-r--r--bgpd/bgp_io.c2
-rw-r--r--bgpd/bgp_nb_config.c2
-rw-r--r--bgpd/bgp_route.c2
-rw-r--r--bgpd/bgp_updgrp.c6
-rw-r--r--eigrpd/eigrp_filter.c6
-rw-r--r--eigrpd/eigrp_interface.c2
-rw-r--r--isisd/isis_adjacency.c2
-rw-r--r--isisd/isis_circuit.c24
-rw-r--r--isisd/isis_dr.c6
-rw-r--r--isisd/isis_events.c10
-rw-r--r--isisd/isis_ldp_sync.c18
-rw-r--r--isisd/isis_lsp.c8
-rw-r--r--isisd/isis_nb_config.c3
-rw-r--r--isisd/isis_pdu.c4
-rw-r--r--isisd/isis_sr.c2
-rw-r--r--isisd/isisd.c14
-rw-r--r--ldpd/accept.c6
-rw-r--r--ldpd/adjacency.c8
-rw-r--r--ldpd/control.c4
-rw-r--r--ldpd/interface.c10
-rw-r--r--ldpd/lde.c8
-rw-r--r--ldpd/lde_lib.c4
-rw-r--r--ldpd/ldpd.c14
-rw-r--r--ldpd/ldpe.c14
-rw-r--r--ldpd/neighbor.c18
-rw-r--r--ldpd/packet.c6
-rw-r--r--lib/agentx.c2
-rw-r--r--lib/ldp_sync.c2
-rw-r--r--lib/northbound_cli.c8
-rw-r--r--lib/spf_backoff.c9
-rw-r--r--lib/thread.c3
-rw-r--r--lib/thread.h14
-rw-r--r--nhrpd/netlink_arp.c2
-rw-r--r--nhrpd/nhrp_nhs.c2
-rw-r--r--ospfd/ospf_ism.h2
-rw-r--r--ospfd/ospf_ldp_sync.c23
-rw-r--r--ospfd/ospf_sr.c2
-rw-r--r--pimd/pim_msdp.h4
-rw-r--r--pimd/pim_neighbor.c2
-rw-r--r--pimd/pim_upstream.c2
-rw-r--r--ripd/ripd.c2
-rw-r--r--ripd/ripd.h2
-rw-r--r--ripngd/ripngd.h2
-rw-r--r--watchfrr/watchfrr.c1
-rw-r--r--zebra/kernel_netlink.c2
-rw-r--r--zebra/zebra_fpm.c8
-rw-r--r--zebra/zebra_ptm.c2
-rw-r--r--zebra/zebra_pw.c4
-rw-r--r--zebra/zebra_routemap.c2
51 files changed, 157 insertions, 160 deletions
diff --git a/bgpd/bgp_fsm.c b/bgpd/bgp_fsm.c
index 61119ced8..446840841 100644
--- a/bgpd/bgp_fsm.c
+++ b/bgpd/bgp_fsm.c
@@ -704,8 +704,8 @@ bool bgp_update_delay_configured(struct bgp *bgp)
on ending the update delay. */
void bgp_update_delay_end(struct bgp *bgp)
{
- THREAD_TIMER_OFF(bgp->t_update_delay);
- THREAD_TIMER_OFF(bgp->t_establish_wait);
+ THREAD_OFF(bgp->t_update_delay);
+ THREAD_OFF(bgp->t_establish_wait);
/* Reset update-delay related state */
bgp->update_delay_over = 1;
@@ -924,7 +924,7 @@ static int bgp_maxmed_onstartup_timer(struct thread *thread)
zlog_info("Max med on startup ended - timer expired.");
bgp = THREAD_ARG(thread);
- THREAD_TIMER_OFF(bgp->t_maxmed_onstartup);
+ THREAD_OFF(bgp->t_maxmed_onstartup);
bgp->maxmed_onstartup_over = 1;
bgp_maxmed_update(bgp);
@@ -968,7 +968,7 @@ static int bgp_update_delay_timer(struct thread *thread)
zlog_info("Update delay ended - timer expired.");
bgp = THREAD_ARG(thread);
- THREAD_TIMER_OFF(bgp->t_update_delay);
+ THREAD_OFF(bgp->t_update_delay);
bgp_update_delay_end(bgp);
return 0;
@@ -982,7 +982,7 @@ static int bgp_establish_wait_timer(struct thread *thread)
zlog_info("Establish wait - timer expired.");
bgp = THREAD_ARG(thread);
- THREAD_TIMER_OFF(bgp->t_establish_wait);
+ THREAD_OFF(bgp->t_establish_wait);
bgp_check_update_delay(bgp);
return 0;
diff --git a/bgpd/bgp_fsm.h b/bgpd/bgp_fsm.h
index aa98515c3..b9156df61 100644
--- a/bgpd/bgp_fsm.h
+++ b/bgpd/bgp_fsm.h
@@ -31,7 +31,7 @@
#define BGP_TIMER_OFF(T) \
do { \
- THREAD_TIMER_OFF(T); \
+ THREAD_OFF(T); \
} while (0)
#define BGP_EVENT_ADD(P, E) \
diff --git a/bgpd/bgp_io.c b/bgpd/bgp_io.c
index 412c8e3e5..b14ac8b78 100644
--- a/bgpd/bgp_io.c
+++ b/bgpd/bgp_io.c
@@ -31,7 +31,7 @@
#include "network.h" // for ERRNO_IO_RETRY
#include "stream.h" // for stream_get_endp, stream_getw_from, str...
#include "ringbuf.h" // for ringbuf_remain, ringbuf_peek, ringbuf_...
-#include "thread.h" // for THREAD_OFF, THREAD_ARG, thread, thread...
+#include "thread.h" // for THREAD_OFF, THREAD_ARG, thread...
#include "zassert.h" // for assert
#include "bgpd/bgp_io.h"
diff --git a/bgpd/bgp_nb_config.c b/bgpd/bgp_nb_config.c
index f01325577..3f0325eac 100644
--- a/bgpd/bgp_nb_config.c
+++ b/bgpd/bgp_nb_config.c
@@ -509,7 +509,7 @@ int bgp_global_med_config_max_med_onstart_up_time_destroy(
/* Cancel max-med onstartup if its on */
if (bgp->t_maxmed_onstartup) {
- THREAD_TIMER_OFF(bgp->t_maxmed_onstartup);
+ THREAD_OFF(bgp->t_maxmed_onstartup);
bgp->maxmed_onstartup_over = 1;
}
diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c
index eba355fad..dd5f8c35b 100644
--- a/bgpd/bgp_route.c
+++ b/bgpd/bgp_route.c
@@ -4289,7 +4289,7 @@ void bgp_stop_announce_route_timer(struct peer_af *paf)
if (!paf->t_announce_route)
return;
- THREAD_TIMER_OFF(paf->t_announce_route);
+ thread_cancel(&paf->t_announce_route);
}
/*
diff --git a/bgpd/bgp_updgrp.c b/bgpd/bgp_updgrp.c
index 1685f9818..21eca78ab 100644
--- a/bgpd/bgp_updgrp.c
+++ b/bgpd/bgp_updgrp.c
@@ -796,13 +796,11 @@ static void update_subgroup_delete(struct update_subgroup *subgrp)
UPDGRP_INCR_STAT(subgrp->update_group, subgrps_deleted);
THREAD_OFF(subgrp->t_merge_check);
-
- THREAD_TIMER_OFF(subgrp->t_coalesce);
+ THREAD_OFF(subgrp->t_coalesce);
bpacket_queue_cleanup(SUBGRP_PKTQ(subgrp));
subgroup_clear_table(subgrp);
- THREAD_TIMER_OFF(subgrp->t_coalesce);
sync_delete(subgrp);
if (BGP_DEBUG(update_groups, UPDATE_GROUPS) && subgrp->update_group)
@@ -1768,7 +1766,7 @@ int update_group_refresh_default_originate_route_map(struct thread *thread)
bgp = THREAD_ARG(thread);
update_group_walk(bgp, update_group_default_originate_route_map_walkcb,
reason);
- THREAD_TIMER_OFF(bgp->t_rmap_def_originate_eval);
+ thread_cancel(&bgp->t_rmap_def_originate_eval);
bgp_unlock(bgp);
return 0;
diff --git a/eigrpd/eigrp_filter.c b/eigrpd/eigrp_filter.c
index 010fd2d3a..009b57e05 100644
--- a/eigrpd/eigrp_filter.c
+++ b/eigrpd/eigrp_filter.c
@@ -159,8 +159,8 @@ void eigrp_distribute_update(struct distribute_ctx *ctx,
#endif
// TODO: check Graceful restart after 10sec
- /* cancel GR scheduled */
- thread_cancel(&(e->t_distribute));
+ /* cancel GR scheduled */
+ thread_cancel(&(e->t_distribute));
/* schedule Graceful restart for whole process in 10sec */
thread_add_timer(master, eigrp_distribute_timer_process, e,
@@ -264,7 +264,7 @@ void eigrp_distribute_update(struct distribute_ctx *ctx,
#endif
// TODO: check Graceful restart after 10sec
- /* Cancel GR scheduled */
+ /* Cancel GR scheduled */
thread_cancel(&(ei->t_distribute));
/* schedule Graceful restart for interface in 10sec */
e->t_distribute = NULL;
diff --git a/eigrpd/eigrp_interface.c b/eigrpd/eigrp_interface.c
index e7c6b2e07..dd43dd047 100644
--- a/eigrpd/eigrp_interface.c
+++ b/eigrpd/eigrp_interface.c
@@ -420,7 +420,7 @@ void eigrp_if_free(struct eigrp_interface *ei, int source)
struct eigrp *eigrp = ei->eigrp;
if (source == INTERFACE_DOWN_BY_VTY) {
- THREAD_OFF(ei->t_hello);
+ thread_cancel(&ei->t_hello);
eigrp_hello_send(ei, EIGRP_HELLO_GRACEFUL_SHUTDOWN, NULL);
}
diff --git a/isisd/isis_adjacency.c b/isisd/isis_adjacency.c
index 59403b6c2..71d475816 100644
--- a/isisd/isis_adjacency.c
+++ b/isisd/isis_adjacency.c
@@ -147,7 +147,7 @@ void isis_delete_adj(void *arg)
if (!adj)
return;
- THREAD_TIMER_OFF(adj->t_expire);
+ thread_cancel(&adj->t_expire);
if (adj->adj_state != ISIS_ADJ_DOWN)
adj->adj_state = ISIS_ADJ_DOWN;
diff --git a/isisd/isis_circuit.c b/isisd/isis_circuit.c
index 3eb3b900a..730d224cb 100644
--- a/isisd/isis_circuit.c
+++ b/isisd/isis_circuit.c
@@ -788,12 +788,12 @@ void isis_circuit_down(struct isis_circuit *circuit)
memset(circuit->u.bc.l2_desig_is, 0, ISIS_SYS_ID_LEN + 1);
memset(circuit->u.bc.snpa, 0, ETH_ALEN);
- THREAD_TIMER_OFF(circuit->u.bc.t_send_lan_hello[0]);
- THREAD_TIMER_OFF(circuit->u.bc.t_send_lan_hello[1]);
- THREAD_TIMER_OFF(circuit->u.bc.t_run_dr[0]);
- THREAD_TIMER_OFF(circuit->u.bc.t_run_dr[1]);
- THREAD_TIMER_OFF(circuit->u.bc.t_refresh_pseudo_lsp[0]);
- THREAD_TIMER_OFF(circuit->u.bc.t_refresh_pseudo_lsp[1]);
+ thread_cancel(&circuit->u.bc.t_send_lan_hello[0]);
+ thread_cancel(&circuit->u.bc.t_send_lan_hello[1]);
+ thread_cancel(&circuit->u.bc.t_run_dr[0]);
+ thread_cancel(&circuit->u.bc.t_run_dr[1]);
+ thread_cancel(&circuit->u.bc.t_refresh_pseudo_lsp[0]);
+ thread_cancel(&circuit->u.bc.t_refresh_pseudo_lsp[1]);
circuit->lsp_regenerate_pending[0] = 0;
circuit->lsp_regenerate_pending[1] = 0;
@@ -803,15 +803,15 @@ void isis_circuit_down(struct isis_circuit *circuit)
} else if (circuit->circ_type == CIRCUIT_T_P2P) {
isis_delete_adj(circuit->u.p2p.neighbor);
circuit->u.p2p.neighbor = NULL;
- THREAD_TIMER_OFF(circuit->u.p2p.t_send_p2p_hello);
+ thread_cancel(&circuit->u.p2p.t_send_p2p_hello);
}
/* Cancel all active threads */
- THREAD_TIMER_OFF(circuit->t_send_csnp[0]);
- THREAD_TIMER_OFF(circuit->t_send_csnp[1]);
- THREAD_TIMER_OFF(circuit->t_send_psnp[0]);
- THREAD_TIMER_OFF(circuit->t_send_psnp[1]);
- THREAD_OFF(circuit->t_read);
+ thread_cancel(&circuit->t_send_csnp[0]);
+ thread_cancel(&circuit->t_send_csnp[1]);
+ thread_cancel(&circuit->t_send_psnp[0]);
+ thread_cancel(&circuit->t_send_psnp[1]);
+ thread_cancel(&circuit->t_read);
if (circuit->tx_queue) {
isis_tx_queue_free(circuit->tx_queue);
diff --git a/isisd/isis_dr.c b/isisd/isis_dr.c
index 3324d74e0..d03f857a0 100644
--- a/isisd/isis_dr.c
+++ b/isisd/isis_dr.c
@@ -221,8 +221,8 @@ int isis_dr_resign(struct isis_circuit *circuit, int level)
circuit->u.bc.is_dr[level - 1] = 0;
circuit->u.bc.run_dr_elect[level - 1] = 0;
- THREAD_TIMER_OFF(circuit->u.bc.t_run_dr[level - 1]);
- THREAD_TIMER_OFF(circuit->u.bc.t_refresh_pseudo_lsp[level - 1]);
+ thread_cancel(&circuit->u.bc.t_run_dr[level - 1]);
+ thread_cancel(&circuit->u.bc.t_refresh_pseudo_lsp[level - 1]);
circuit->lsp_regenerate_pending[level - 1] = 0;
memcpy(id, circuit->isis->sysid, ISIS_SYS_ID_LEN);
@@ -246,7 +246,7 @@ int isis_dr_resign(struct isis_circuit *circuit, int level)
&circuit->t_send_psnp[1]);
}
- THREAD_TIMER_OFF(circuit->t_send_csnp[level - 1]);
+ thread_cancel(&circuit->t_send_csnp[level - 1]);
thread_add_timer(master, isis_run_dr,
&circuit->level_arg[level - 1],
diff --git a/isisd/isis_events.c b/isisd/isis_events.c
index c4c95138c..0b987fc5c 100644
--- a/isisd/isis_events.c
+++ b/isisd/isis_events.c
@@ -109,13 +109,13 @@ static void circuit_resign_level(struct isis_circuit *circuit, int level)
circuit->area->area_tag, circuit->circuit_id,
circuit->interface->name, level);
- THREAD_TIMER_OFF(circuit->t_send_csnp[idx]);
- THREAD_TIMER_OFF(circuit->t_send_psnp[idx]);
+ thread_cancel(&circuit->t_send_csnp[idx]);
+ thread_cancel(&circuit->t_send_psnp[idx]);
if (circuit->circ_type == CIRCUIT_T_BROADCAST) {
- THREAD_TIMER_OFF(circuit->u.bc.t_send_lan_hello[idx]);
- THREAD_TIMER_OFF(circuit->u.bc.t_run_dr[idx]);
- THREAD_TIMER_OFF(circuit->u.bc.t_refresh_pseudo_lsp[idx]);
+ thread_cancel(&circuit->u.bc.t_send_lan_hello[idx]);
+ thread_cancel(&circuit->u.bc.t_run_dr[idx]);
+ thread_cancel(&circuit->u.bc.t_refresh_pseudo_lsp[idx]);
circuit->lsp_regenerate_pending[idx] = 0;
circuit->u.bc.run_dr_elect[idx] = 0;
circuit->u.bc.is_dr[idx] = 0;
diff --git a/isisd/isis_ldp_sync.c b/isisd/isis_ldp_sync.c
index 8360dfc59..988af64c4 100644
--- a/isisd/isis_ldp_sync.c
+++ b/isisd/isis_ldp_sync.c
@@ -135,8 +135,8 @@ int isis_ldp_sync_announce_update(struct ldp_igp_sync_announce announce)
}
}
- THREAD_TIMER_OFF(isis->ldp_sync_cmd.t_hello);
- isis->ldp_sync_cmd.t_hello = NULL;
+ THREAD_OFF(isis->ldp_sync_cmd.t_hello);
+
isis->ldp_sync_cmd.sequence = 0;
isis_ldp_sync_hello_timer_add();
@@ -186,7 +186,7 @@ int isis_ldp_sync_hello_update(struct ldp_igp_sync_hello hello)
}
}
} else {
- THREAD_TIMER_OFF(isis->ldp_sync_cmd.t_hello);
+ THREAD_OFF(isis->ldp_sync_cmd.t_hello);
isis_ldp_sync_hello_timer_add();
}
isis->ldp_sync_cmd.sequence = hello.sequence;
@@ -280,8 +280,9 @@ void isis_ldp_sync_if_complete(struct isis_circuit *circuit)
if (ldp_sync_info && ldp_sync_info->enabled == LDP_IGP_SYNC_ENABLED) {
if (ldp_sync_info->state == LDP_IGP_SYNC_STATE_REQUIRED_NOT_UP)
ldp_sync_info->state = LDP_IGP_SYNC_STATE_REQUIRED_UP;
- THREAD_TIMER_OFF(ldp_sync_info->t_holddown);
- ldp_sync_info->t_holddown = NULL;
+
+ THREAD_OFF(ldp_sync_info->t_holddown);
+
isis_ldp_sync_set_if_metric(circuit, true);
}
}
@@ -300,7 +301,7 @@ void isis_ldp_sync_ldp_fail(struct isis_circuit *circuit)
if (ldp_sync_info &&
ldp_sync_info->enabled == LDP_IGP_SYNC_ENABLED &&
ldp_sync_info->state != LDP_IGP_SYNC_STATE_NOT_REQUIRED) {
- THREAD_TIMER_OFF(ldp_sync_info->t_holddown);
+ THREAD_OFF(ldp_sync_info->t_holddown);
ldp_sync_info->state = LDP_IGP_SYNC_STATE_REQUIRED_NOT_UP;
isis_ldp_sync_set_if_metric(circuit, true);
}
@@ -323,7 +324,7 @@ void isis_ldp_sync_if_remove(struct isis_circuit *circuit, bool remove)
ils_debug("ldp_sync: remove if %s", circuit->interface
? circuit->interface->name : "");
- THREAD_TIMER_OFF(ldp_sync_info->t_holddown);
+ THREAD_OFF(ldp_sync_info->t_holddown);
ldp_sync_info->state = LDP_IGP_SYNC_STATE_NOT_REQUIRED;
isis_ldp_sync_set_if_metric(circuit, true);
if (remove) {
@@ -662,8 +663,7 @@ void isis_ldp_sync_gbl_exit(bool remove)
UNSET_FLAG(isis->ldp_sync_cmd.flags, LDP_SYNC_FLAG_ENABLE);
UNSET_FLAG(isis->ldp_sync_cmd.flags, LDP_SYNC_FLAG_HOLDDOWN);
isis->ldp_sync_cmd.holddown = LDP_IGP_SYNC_HOLDDOWN_DEFAULT;
- THREAD_TIMER_OFF(isis->ldp_sync_cmd.t_hello);
- isis->ldp_sync_cmd.t_hello = NULL;
+ THREAD_OFF(isis->ldp_sync_cmd.t_hello);
/* remove LDP-SYNC on all ISIS interfaces */
FOR_ALL_INTERFACES (vrf, ifp) {
diff --git a/isisd/isis_lsp.c b/isisd/isis_lsp.c
index 2e38663d3..d8ad4cd51 100644
--- a/isisd/isis_lsp.c
+++ b/isisd/isis_lsp.c
@@ -1241,7 +1241,7 @@ int lsp_generate(struct isis_area *area, int level)
refresh_time = lsp_refresh_time(newlsp, rem_lifetime);
- THREAD_TIMER_OFF(area->t_lsp_refresh[level - 1]);
+ thread_cancel(&area->t_lsp_refresh[level - 1]);
area->lsp_regenerate_pending[level - 1] = 0;
thread_add_timer(master, lsp_refresh,
&area->lsp_refresh_arg[level - 1], refresh_time,
@@ -1451,7 +1451,7 @@ int _lsp_regenerate_schedule(struct isis_area *area, int level,
"ISIS (%s): Will schedule regen timer. Last run was: %lld, Now is: %lld",
area->area_tag, (long long)lsp->last_generated,
(long long)now);
- THREAD_TIMER_OFF(area->t_lsp_refresh[lvl - 1]);
+ thread_cancel(&area->t_lsp_refresh[lvl - 1]);
diff = now - lsp->last_generated;
if (diff < area->lsp_gen_interval[lvl - 1]
&& !(area->bfd_signalled_down)) {
@@ -1628,7 +1628,7 @@ int lsp_generate_pseudo(struct isis_circuit *circuit, int level)
lsp_flood(lsp, NULL);
refresh_time = lsp_refresh_time(lsp, rem_lifetime);
- THREAD_TIMER_OFF(circuit->u.bc.t_refresh_pseudo_lsp[level - 1]);
+ thread_cancel(&circuit->u.bc.t_refresh_pseudo_lsp[level - 1]);
circuit->lsp_regenerate_pending[level - 1] = 0;
if (level == IS_LEVEL_1)
thread_add_timer(
@@ -1819,7 +1819,7 @@ int lsp_regenerate_schedule_pseudo(struct isis_circuit *circuit, int level)
"ISIS (%s): Will schedule PSN regen timer. Last run was: %lld, Now is: %lld",
area->area_tag, (long long)lsp->last_generated,
(long long)now);
- THREAD_TIMER_OFF(circuit->u.bc.t_refresh_pseudo_lsp[lvl - 1]);
+ thread_cancel(&circuit->u.bc.t_refresh_pseudo_lsp[lvl - 1]);
diff = now - lsp->last_generated;
if (diff < circuit->area->lsp_gen_interval[lvl - 1]) {
timeout =
diff --git a/isisd/isis_nb_config.c b/isisd/isis_nb_config.c
index 2710c3c13..23a646663 100644
--- a/isisd/isis_nb_config.c
+++ b/isisd/isis_nb_config.c
@@ -2844,8 +2844,7 @@ int lib_interface_isis_mpls_ldp_sync_modify(struct nb_cb_modify_args *args)
SET_FLAG(ldp_sync_info->flags, LDP_SYNC_FLAG_IF_CONFIG);
ldp_sync_info->enabled = LDP_IGP_SYNC_DEFAULT;
ldp_sync_info->state = LDP_IGP_SYNC_STATE_NOT_REQUIRED;
- THREAD_TIMER_OFF(ldp_sync_info->t_holddown);
- ldp_sync_info->t_holddown = NULL;
+ THREAD_OFF(ldp_sync_info->t_holddown);
isis_ldp_sync_set_if_metric(circuit, true);
}
break;
diff --git a/isisd/isis_pdu.c b/isisd/isis_pdu.c
index 63be8841c..72de5d654 100644
--- a/isisd/isis_pdu.c
+++ b/isisd/isis_pdu.c
@@ -205,7 +205,7 @@ static int process_p2p_hello(struct iih_info *iih)
adj);
/* lets take care of the expiry */
- THREAD_TIMER_OFF(adj->t_expire);
+ thread_cancel(&adj->t_expire);
thread_add_timer(master, isis_adj_expire, adj, (long)adj->hold_time,
&adj->t_expire);
@@ -497,7 +497,7 @@ static int process_lan_hello(struct iih_info *iih)
adj);
/* lets take care of the expiry */
- THREAD_TIMER_OFF(adj->t_expire);
+ thread_cancel(&adj->t_expire);
thread_add_timer(master, isis_adj_expire, adj, (long)adj->hold_time,
&adj->t_expire);
diff --git a/isisd/isis_sr.c b/isisd/isis_sr.c
index 842103de1..3f62f4dca 100644
--- a/isisd/isis_sr.c
+++ b/isisd/isis_sr.c
@@ -2284,7 +2284,7 @@ void isis_sr_stop(struct isis_area *area)
area->area_tag);
/* Disable any re-attempt to connect to Label Manager */
- THREAD_TIMER_OFF(srdb->t_start_lm);
+ thread_cancel(&srdb->t_start_lm);
/* Uninstall all local Adjacency-SIDs. */
for (ALL_LIST_ELEMENTS(area->srdb.adj_sids, node, nnode, sra))
diff --git a/isisd/isisd.c b/isisd/isisd.c
index 57d3e9c7c..075daaec9 100644
--- a/isisd/isisd.c
+++ b/isisd/isisd.c
@@ -442,8 +442,8 @@ void isis_area_destroy(struct isis_area *area)
spftree_area_del(area);
- THREAD_TIMER_OFF(area->spf_timer[0]);
- THREAD_TIMER_OFF(area->spf_timer[1]);
+ thread_cancel(&area->spf_timer[0]);
+ thread_cancel(&area->spf_timer[1]);
spf_backoff_free(area->spf_delay_ietf[0]);
spf_backoff_free(area->spf_delay_ietf[1]);
@@ -457,9 +457,9 @@ void isis_area_destroy(struct isis_area *area)
}
area->area_addrs = NULL;
- THREAD_TIMER_OFF(area->t_tick);
- THREAD_TIMER_OFF(area->t_lsp_refresh[0]);
- THREAD_TIMER_OFF(area->t_lsp_refresh[1]);
+ thread_cancel(&area->t_tick);
+ thread_cancel(&area->t_lsp_refresh[0]);
+ thread_cancel(&area->t_lsp_refresh[1]);
thread_cancel_event(master, area);
@@ -2373,12 +2373,12 @@ static void area_resign_level(struct isis_area *area, int level)
}
}
- THREAD_TIMER_OFF(area->spf_timer[level - 1]);
+ thread_cancel(&area->spf_timer[level - 1]);
sched_debug(
"ISIS (%s): Resigned from L%d - canceling LSP regeneration timer.",
area->area_tag, level);
- THREAD_TIMER_OFF(area->t_lsp_refresh[level - 1]);
+ thread_cancel(&area->t_lsp_refresh[level - 1]);
area->lsp_regenerate_pending[level - 1] = 0;
}
diff --git a/ldpd/accept.c b/ldpd/accept.c
index 323558d7f..9bba0f5dd 100644
--- a/ldpd/accept.c
+++ b/ldpd/accept.c
@@ -74,7 +74,7 @@ accept_del(int fd)
LIST_FOREACH(av, &accept_queue.queue, entry)
if (av->fd == fd) {
log_debug("%s: %d removed from queue", __func__, fd);
- THREAD_READ_OFF(av->ev);
+ thread_cancel(&av->ev);
LIST_REMOVE(av, entry);
free(av);
return;
@@ -95,7 +95,7 @@ accept_unpause(void)
{
if (accept_queue.evt != NULL) {
log_debug(__func__);
- THREAD_TIMER_OFF(accept_queue.evt);
+ thread_cancel(&accept_queue.evt);
accept_arm();
}
}
@@ -115,7 +115,7 @@ accept_unarm(void)
{
struct accept_ev *av;
LIST_FOREACH(av, &accept_queue.queue, entry)
- THREAD_READ_OFF(av->ev);
+ thread_cancel(&av->ev);
}
static int
diff --git a/ldpd/adjacency.c b/ldpd/adjacency.c
index 3923c169d..795a41491 100644
--- a/ldpd/adjacency.c
+++ b/ldpd/adjacency.c
@@ -198,7 +198,7 @@ adj_itimer(struct thread *thread)
void
adj_start_itimer(struct adj *adj)
{
- THREAD_TIMER_OFF(adj->inactivity_timer);
+ thread_cancel(&adj->inactivity_timer);
adj->inactivity_timer = NULL;
thread_add_timer(master, adj_itimer, adj, adj->holdtime,
&adj->inactivity_timer);
@@ -207,7 +207,7 @@ adj_start_itimer(struct adj *adj)
void
adj_stop_itimer(struct adj *adj)
{
- THREAD_TIMER_OFF(adj->inactivity_timer);
+ thread_cancel(&adj->inactivity_timer);
}
/* targeted neighbors */
@@ -359,7 +359,7 @@ tnbr_hello_timer(struct thread *thread)
static void
tnbr_start_hello_timer(struct tnbr *tnbr)
{
- THREAD_TIMER_OFF(tnbr->hello_timer);
+ thread_cancel(&tnbr->hello_timer);
tnbr->hello_timer = NULL;
thread_add_timer(master, tnbr_hello_timer, tnbr, tnbr_get_hello_interval(tnbr),
&tnbr->hello_timer);
@@ -368,7 +368,7 @@ tnbr_start_hello_timer(struct tnbr *tnbr)
static void
tnbr_stop_hello_timer(struct tnbr *tnbr)
{
- THREAD_TIMER_OFF(tnbr->hello_timer);
+ thread_cancel(&tnbr->hello_timer);
}
struct ctl_adj *
diff --git a/ldpd/control.c b/ldpd/control.c
index 6554f0a6f..3b7776595 100644
--- a/ldpd/control.c
+++ b/ldpd/control.c
@@ -183,8 +183,8 @@ control_close(int fd)
msgbuf_clear(&c->iev.ibuf.w);
TAILQ_REMOVE(&ctl_conns, c, entry);
- THREAD_READ_OFF(c->iev.ev_read);
- THREAD_WRITE_OFF(c->iev.ev_write);
+ thread_cancel(&c->iev.ev_read);
+ thread_cancel(&c->iev.ev_write);
close(c->iev.ibuf.fd);
accept_unpause();
free(c);
diff --git a/ldpd/interface.c b/ldpd/interface.c
index 8b3dd71fd..3e9f2fa99 100644
--- a/ldpd/interface.c
+++ b/ldpd/interface.c
@@ -470,7 +470,7 @@ if_hello_timer(struct thread *thread)
static void
if_start_hello_timer(struct iface_af *ia)
{
- THREAD_TIMER_OFF(ia->hello_timer);
+ thread_cancel(&ia->hello_timer);
ia->hello_timer = NULL;
thread_add_timer(master, if_hello_timer, ia, if_get_hello_interval(ia),
&ia->hello_timer);
@@ -479,7 +479,7 @@ if_start_hello_timer(struct iface_af *ia)
static void
if_stop_hello_timer(struct iface_af *ia)
{
- THREAD_TIMER_OFF(ia->hello_timer);
+ thread_cancel(&ia->hello_timer);
}
struct ctl_iface *
@@ -753,8 +753,7 @@ static void start_wait_for_ldp_sync_timer(struct iface *iface)
if (iface->ldp_sync.wait_for_sync_timer)
return;
- THREAD_TIMER_OFF(iface->ldp_sync.wait_for_sync_timer);
- iface->ldp_sync.wait_for_sync_timer = NULL;
+ THREAD_OFF(iface->ldp_sync.wait_for_sync_timer);
thread_add_timer(master, iface_wait_for_ldp_sync_timer, iface,
if_get_wait_for_sync_interval(),
&iface->ldp_sync.wait_for_sync_timer);
@@ -762,8 +761,7 @@ static void start_wait_for_ldp_sync_timer(struct iface *iface)
static void stop_wait_for_ldp_sync_timer(struct iface *iface)
{
- THREAD_TIMER_OFF(iface->ldp_sync.wait_for_sync_timer);
- iface->ldp_sync.wait_for_sync_timer = NULL;
+ THREAD_OFF(iface->ldp_sync.wait_for_sync_timer);
}
static int
diff --git a/ldpd/lde.c b/ldpd/lde.c
index df64f908e..67b695150 100644
--- a/ldpd/lde.c
+++ b/ldpd/lde.c
@@ -415,8 +415,8 @@ lde_dispatch_imsg(struct thread *thread)
imsg_event_add(iev);
else {
/* this pipe is dead, so remove the event handlers and exit */
- THREAD_READ_OFF(iev->ev_read);
- THREAD_WRITE_OFF(iev->ev_write);
+ thread_cancel(&iev->ev_read);
+ thread_cancel(&iev->ev_write);
lde_shutdown();
}
@@ -661,8 +661,8 @@ lde_dispatch_parent(struct thread *thread)
imsg_event_add(iev);
else {
/* this pipe is dead, so remove the event handlers and exit */
- THREAD_READ_OFF(iev->ev_read);
- THREAD_WRITE_OFF(iev->ev_write);
+ thread_cancel(&iev->ev_read);
+ thread_cancel(&iev->ev_write);
lde_shutdown();
}
diff --git a/ldpd/lde_lib.c b/ldpd/lde_lib.c
index bed276c7b..9db931677 100644
--- a/ldpd/lde_lib.c
+++ b/ldpd/lde_lib.c
@@ -1060,7 +1060,7 @@ lde_gc_timer(struct thread *thread)
void
lde_gc_start_timer(void)
{
- THREAD_TIMER_OFF(gc_timer);
+ thread_cancel(&gc_timer);
gc_timer = NULL;
thread_add_timer(master, lde_gc_timer, NULL, LDE_GC_INTERVAL,
&gc_timer);
@@ -1069,5 +1069,5 @@ lde_gc_start_timer(void)
void
lde_gc_stop_timer(void)
{
- THREAD_TIMER_OFF(gc_timer);
+ thread_cancel(&gc_timer);
}
diff --git a/ldpd/ldpd.c b/ldpd/ldpd.c
index 940333f83..d6da45c86 100644
--- a/ldpd/ldpd.c
+++ b/ldpd/ldpd.c
@@ -604,8 +604,8 @@ main_dispatch_ldpe(struct thread *thread)
imsg_event_add(iev);
else {
/* this pipe is dead, so remove the event handlers and exit */
- THREAD_READ_OFF(iev->ev_read);
- THREAD_WRITE_OFF(iev->ev_write);
+ thread_cancel(&iev->ev_read);
+ thread_cancel(&iev->ev_write);
ldpe_pid = 0;
if (lde_pid == 0)
ldpd_shutdown();
@@ -702,8 +702,8 @@ main_dispatch_lde(struct thread *thread)
imsg_event_add(iev);
else {
/* this pipe is dead, so remove the event handlers and exit */
- THREAD_READ_OFF(iev->ev_read);
- THREAD_WRITE_OFF(iev->ev_write);
+ thread_cancel(&iev->ev_read);
+ thread_cancel(&iev->ev_write);
lde_pid = 0;
if (ldpe_pid == 0)
ldpd_shutdown();
@@ -728,8 +728,8 @@ ldp_write_handler(struct thread *thread)
fatal("msgbuf_write");
if (n == 0) {
/* this pipe is dead, so remove the event handlers */
- THREAD_READ_OFF(iev->ev_read);
- THREAD_WRITE_OFF(iev->ev_write);
+ thread_cancel(&iev->ev_read);
+ thread_cancel(&iev->ev_write);
return (0);
}
@@ -816,7 +816,7 @@ evbuf_init(struct evbuf *eb, int fd, int (*handler)(struct thread *),
void
evbuf_clear(struct evbuf *eb)
{
- THREAD_WRITE_OFF(eb->ev);
+ thread_cancel(&eb->ev);
msgbuf_clear(&eb->wbuf);
eb->wbuf.fd = -1;
}
diff --git a/ldpd/ldpe.c b/ldpd/ldpe.c
index d3374a62d..ffc1d17f5 100644
--- a/ldpd/ldpe.c
+++ b/ldpd/ldpe.c
@@ -208,7 +208,7 @@ ldpe_shutdown(void)
#ifdef __OpenBSD__
if (sysdep.no_pfkey == 0) {
- THREAD_READ_OFF(pfkey_ev);
+ thread_cancel(&pfkey_ev);
close(global.pfkeysock);
}
#endif
@@ -580,8 +580,8 @@ ldpe_dispatch_main(struct thread *thread)
imsg_event_add(iev);
else {
/* this pipe is dead, so remove the event handlers and exit */
- THREAD_READ_OFF(iev->ev_read);
- THREAD_WRITE_OFF(iev->ev_write);
+ thread_cancel(&iev->ev_read);
+ thread_cancel(&iev->ev_write);
ldpe_shutdown();
}
@@ -719,8 +719,8 @@ ldpe_dispatch_lde(struct thread *thread)
imsg_event_add(iev);
else {
/* this pipe is dead, so remove the event handlers and exit */
- THREAD_READ_OFF(iev->ev_read);
- THREAD_WRITE_OFF(iev->ev_write);
+ thread_cancel(&iev->ev_read);
+ thread_cancel(&iev->ev_write);
ldpe_shutdown();
}
@@ -778,14 +778,14 @@ ldpe_close_sockets(int af)
af_global = ldp_af_global_get(&global, af);
/* discovery socket */
- THREAD_READ_OFF(af_global->disc_ev);
+ thread_cancel(&af_global->disc_ev);
if (af_global->ldp_disc_socket != -1) {
close(af_global->ldp_disc_socket);
af_global->ldp_disc_socket = -1;
}
/* extended discovery socket */
- THREAD_READ_OFF(af_global->edisc_ev);
+ thread_cancel(&af_global->edisc_ev);
if (af_global->ldp_edisc_socket != -1) {
close(af_global->ldp_edisc_socket);
af_global->ldp_edisc_socket = -1;
diff --git a/ldpd/neighbor.c b/ldpd/neighbor.c
index 423410f29..75deaad2c 100644
--- a/ldpd/neighbor.c
+++ b/ldpd/neighbor.c
@@ -302,7 +302,7 @@ nbr_del(struct nbr *nbr)
nbr->auth.method = AUTH_NONE;
if (nbr_pending_connect(nbr))
- THREAD_WRITE_OFF(nbr->ev_connect);
+ thread_cancel(&nbr->ev_connect);
nbr_stop_ktimer(nbr);
nbr_stop_ktimeout(nbr);
nbr_stop_itimeout(nbr);
@@ -416,7 +416,7 @@ nbr_start_ktimer(struct nbr *nbr)
/* send three keepalives per period */
secs = nbr->keepalive / KEEPALIVE_PER_PERIOD;
- THREAD_TIMER_OFF(nbr->keepalive_timer);
+ thread_cancel(&nbr->keepalive_timer);
nbr->keepalive_timer = NULL;
thread_add_timer(master, nbr_ktimer, nbr, secs, &nbr->keepalive_timer);
}
@@ -424,7 +424,7 @@ nbr_start_ktimer(struct nbr *nbr)
void
nbr_stop_ktimer(struct nbr *nbr)
{
- THREAD_TIMER_OFF(nbr->keepalive_timer);
+ thread_cancel(&nbr->keepalive_timer);
}
/* Keepalive timeout: if the nbr hasn't sent keepalive */
@@ -446,7 +446,7 @@ nbr_ktimeout(struct thread *thread)
static void
nbr_start_ktimeout(struct nbr *nbr)
{
- THREAD_TIMER_OFF(nbr->keepalive_timeout);
+ thread_cancel(&nbr->keepalive_timeout);
nbr->keepalive_timeout = NULL;
thread_add_timer(master, nbr_ktimeout, nbr, nbr->keepalive,
&nbr->keepalive_timeout);
@@ -455,7 +455,7 @@ nbr_start_ktimeout(struct nbr *nbr)
void
nbr_stop_ktimeout(struct nbr *nbr)
{
- THREAD_TIMER_OFF(nbr->keepalive_timeout);
+ thread_cancel(&nbr->keepalive_timeout);
}
/* Session initialization timeout: if nbr got stuck in the initialization FSM */
@@ -478,7 +478,7 @@ nbr_start_itimeout(struct nbr *nbr)
int secs;
secs = INIT_FSM_TIMEOUT;
- THREAD_TIMER_OFF(nbr->init_timeout);
+ thread_cancel(&nbr->init_timeout);
nbr->init_timeout = NULL;
thread_add_timer(master, nbr_itimeout, nbr, secs, &nbr->init_timeout);
}
@@ -486,7 +486,7 @@ nbr_start_itimeout(struct nbr *nbr)
void
nbr_stop_itimeout(struct nbr *nbr)
{
- THREAD_TIMER_OFF(nbr->init_timeout);
+ thread_cancel(&nbr->init_timeout);
}
/* Init delay timer: timer to retry to iniziatize session */
@@ -527,7 +527,7 @@ nbr_start_idtimer(struct nbr *nbr)
break;
}
- THREAD_TIMER_OFF(nbr->initdelay_timer);
+ thread_cancel(&nbr->initdelay_timer);
nbr->initdelay_timer = NULL;
thread_add_timer(master, nbr_idtimer, nbr, secs,
&nbr->initdelay_timer);
@@ -536,7 +536,7 @@ nbr_start_idtimer(struct nbr *nbr)
void
nbr_stop_idtimer(struct nbr *nbr)
{
- THREAD_TIMER_OFF(nbr->initdelay_timer);
+ thread_cancel(&nbr->initdelay_timer);
}
int
diff --git a/ldpd/packet.c b/ldpd/packet.c
index 06ada5957..fdcaa79d2 100644
--- a/ldpd/packet.c
+++ b/ldpd/packet.c
@@ -662,7 +662,7 @@ session_shutdown(struct nbr *nbr, uint32_t status, uint32_t msg_id,
switch (nbr->state) {
case NBR_STA_PRESENT:
if (nbr_pending_connect(nbr))
- THREAD_WRITE_OFF(nbr->ev_connect);
+ thread_cancel(&nbr->ev_connect);
break;
case NBR_STA_INITIAL:
case NBR_STA_OPENREC:
@@ -762,7 +762,7 @@ tcp_close(struct tcp_conn *tcp)
evbuf_clear(&tcp->wbuf);
if (tcp->nbr) {
- THREAD_READ_OFF(tcp->rev);
+ thread_cancel(&tcp->rev);
free(tcp->rbuf);
tcp->nbr->tcp = NULL;
}
@@ -794,7 +794,7 @@ pending_conn_new(int fd, int af, union ldpd_addr *addr)
void
pending_conn_del(struct pending_conn *pconn)
{
- THREAD_TIMER_OFF(pconn->ev_timeout);
+ thread_cancel(&pconn->ev_timeout);
TAILQ_REMOVE(&global.pending_conns, pconn, entry);
free(pconn);
}
diff --git a/lib/agentx.c b/lib/agentx.c
index 07f146bae..603d8d617 100644
--- a/lib/agentx.c
+++ b/lib/agentx.c
@@ -107,7 +107,7 @@ static void agentx_events_update(void)
struct thread *thr;
int fd, thr_fd;
- THREAD_OFF(timeout_thr);
+ thread_cancel(&timeout_thr);
FD_ZERO(&fds);
snmp_select_info(&maxfd, &fds, &timeout, &block);
diff --git a/lib/ldp_sync.c b/lib/ldp_sync.c
index 9657f0b1d..c9d7eb37c 100644
--- a/lib/ldp_sync.c
+++ b/lib/ldp_sync.c
@@ -79,7 +79,7 @@ bool ldp_sync_if_down(struct ldp_sync_info *ldp_sync_info)
* update state
*/
if (ldp_sync_info && ldp_sync_info->enabled == LDP_IGP_SYNC_ENABLED) {
- THREAD_TIMER_OFF(ldp_sync_info->t_holddown);
+ THREAD_OFF(ldp_sync_info->t_holddown);
if (ldp_sync_info->state == LDP_IGP_SYNC_STATE_REQUIRED_UP)
ldp_sync_info->state =
diff --git a/lib/northbound_cli.c b/lib/northbound_cli.c
index a7f3a1b30..7048df99f 100644
--- a/lib/northbound_cli.c
+++ b/lib/northbound_cli.c
@@ -89,7 +89,7 @@ static int nb_cli_classic_commit(struct vty *vty)
static void nb_cli_pending_commit_clear(struct vty *vty)
{
- THREAD_TIMER_OFF(vty->t_pending_commit);
+ THREAD_OFF(vty->t_pending_commit);
vty->backoff_cmd_count = 0;
XFREE(MTYPE_TMP, vty->pending_cmds_buf);
vty->pending_cmds_buflen = 0;
@@ -154,7 +154,7 @@ static int nb_cli_schedule_command(struct vty *vty)
vty->pending_cmds_buflen);
/* Schedule the commit operation. */
- THREAD_TIMER_OFF(vty->t_pending_commit);
+ THREAD_OFF(vty->t_pending_commit);
thread_add_timer_msec(master, nb_cli_pending_commit_cb, vty, 100,
&vty->t_pending_commit);
@@ -312,7 +312,7 @@ int nb_cli_rpc(struct vty *vty, const char *xpath, struct list *input,
void nb_cli_confirmed_commit_clean(struct vty *vty)
{
- THREAD_TIMER_OFF(vty->t_confirmed_commit_timeout);
+ thread_cancel(&vty->t_confirmed_commit_timeout);
nb_config_free(vty->confirmed_commit_rollback);
vty->confirmed_commit_rollback = NULL;
}
@@ -377,7 +377,7 @@ static int nb_cli_commit(struct vty *vty, bool force,
"%% Resetting confirmed-commit timeout to %u minute(s)\n\n",
confirmed_timeout);
- THREAD_TIMER_OFF(vty->t_confirmed_commit_timeout);
+ thread_cancel(&vty->t_confirmed_commit_timeout);
thread_add_timer(master,
nb_cli_confirmed_commit_timeout, vty,
confirmed_timeout * 60,
diff --git a/lib/spf_backoff.c b/lib/spf_backoff.c
index acb208e5e..ac6dd29f0 100644
--- a/lib/spf_backoff.c
+++ b/lib/spf_backoff.c
@@ -110,8 +110,8 @@ void spf_backoff_free(struct spf_backoff *backoff)
if (!backoff)
return;
- THREAD_TIMER_OFF(backoff->t_holddown);
- THREAD_TIMER_OFF(backoff->t_timetolearn);
+ thread_cancel(&backoff->t_holddown);
+ thread_cancel(&backoff->t_timetolearn);
XFREE(MTYPE_SPF_BACKOFF_NAME, backoff->name);
XFREE(MTYPE_SPF_BACKOFF, backoff);
@@ -121,7 +121,6 @@ static int spf_backoff_timetolearn_elapsed(struct thread *thread)
{
struct spf_backoff *backoff = THREAD_ARG(thread);
- backoff->t_timetolearn = NULL;
backoff->state = SPF_BACKOFF_LONG_WAIT;
backoff_debug("SPF Back-off(%s) TIMETOLEARN elapsed, move to state %s",
backoff->name, spf_backoff_state2str(backoff->state));
@@ -132,7 +131,7 @@ static int spf_backoff_holddown_elapsed(struct thread *thread)
{
struct spf_backoff *backoff = THREAD_ARG(thread);
- THREAD_TIMER_OFF(backoff->t_timetolearn);
+ THREAD_OFF(backoff->t_timetolearn);
timerclear(&backoff->first_event_time);
backoff->state = SPF_BACKOFF_QUIET;
backoff_debug("SPF Back-off(%s) HOLDDOWN elapsed, move to state %s",
@@ -166,7 +165,7 @@ long spf_backoff_schedule(struct spf_backoff *backoff)
break;
case SPF_BACKOFF_SHORT_WAIT:
case SPF_BACKOFF_LONG_WAIT:
- THREAD_TIMER_OFF(backoff->t_holddown);
+ thread_cancel(&backoff->t_holddown);
thread_add_timer_msec(backoff->m, spf_backoff_holddown_elapsed,
backoff, backoff->holddown,
&backoff->t_holddown);
diff --git a/lib/thread.c b/lib/thread.c
index 90c6c6f0a..012194a47 100644
--- a/lib/thread.c
+++ b/lib/thread.c
@@ -1234,6 +1234,9 @@ void thread_cancel_async(struct thread_master *master, struct thread **thread,
while (!master->canceled)
pthread_cond_wait(&master->cancel_cond, &master->mtx);
}
+
+ if (thread)
+ *thread = NULL;
}
/* ------------------------------------------------------------------------- */
diff --git a/lib/thread.h b/lib/thread.h
index a581796d3..e2b7763c5 100644
--- a/lib/thread.h
+++ b/lib/thread.h
@@ -89,8 +89,6 @@ struct thread_master {
pthread_t owner;
};
-typedef struct thread_master event_master;
-
/* Thread itself. */
struct thread {
uint8_t type; /* thread type */
@@ -149,10 +147,14 @@ struct cpu_thread_history {
#define THREAD_FD(X) ((X)->u.fd)
#define THREAD_VAL(X) ((X)->u.val)
-#define THREAD_OFF(thread) thread_cancel(&(thread))
-#define THREAD_READ_OFF(thread) thread_cancel(&(thread))
-#define THREAD_WRITE_OFF(thread) thread_cancel(&(thread))
-#define THREAD_TIMER_OFF(thread) thread_cancel(&(thread))
+/*
+ * Please consider this macro deprecated, and do not use it in new code.
+ */
+#define THREAD_OFF(thread) \
+ do { \
+ if ((thread)) \
+ thread_cancel(&(thread)); \
+ } while (0)
#define debugargdef const char *funcname, const char *schedfrom, int fromln
diff --git a/nhrpd/netlink_arp.c b/nhrpd/netlink_arp.c
index cf338a087..309f73352 100644
--- a/nhrpd/netlink_arp.c
+++ b/nhrpd/netlink_arp.c
@@ -257,7 +257,7 @@ static int netlink_log_recv(struct thread *t)
void netlink_set_nflog_group(int nlgroup)
{
if (netlink_log_fd >= 0) {
- THREAD_OFF(netlink_log_thread);
+ thread_cancel(&netlink_log_thread);
close(netlink_log_fd);
netlink_log_fd = -1;
}
diff --git a/nhrpd/nhrp_nhs.c b/nhrpd/nhrp_nhs.c
index 8509cedce..085cab347 100644
--- a/nhrpd/nhrp_nhs.c
+++ b/nhrpd/nhrp_nhs.c
@@ -137,7 +137,7 @@ static void nhrp_reg_peer_notify(struct notifier_block *n, unsigned long cmd)
debugf(NHRP_DEBUG_COMMON, "NHS: Flush timer for %s",
sockunion2str(&r->peer->vc->remote.nbma, buf,
sizeof(buf)));
- THREAD_TIMER_OFF(r->t_register);
+ THREAD_OFF(r->t_register);
thread_add_timer_msec(master, nhrp_reg_send_req, r, 10,
&r->t_register);
break;
diff --git a/ospfd/ospf_ism.h b/ospfd/ospf_ism.h
index 6c0df9a1e..c41ba6c84 100644
--- a/ospfd/ospf_ism.h
+++ b/ospfd/ospf_ism.h
@@ -79,7 +79,7 @@
} while (0)
/* Macro for OSPF ISM timer turn off. */
-#define OSPF_ISM_TIMER_OFF(X) thread_cancel(&(X));
+#define OSPF_ISM_TIMER_OFF(X) thread_cancel(&(X))
/* Macro for OSPF schedule event. */
#define OSPF_ISM_EVENT_SCHEDULE(I, E) \
diff --git a/ospfd/ospf_ldp_sync.c b/ospfd/ospf_ldp_sync.c
index 96fa04b58..68792ebcc 100644
--- a/ospfd/ospf_ldp_sync.c
+++ b/ospfd/ospf_ldp_sync.c
@@ -99,8 +99,7 @@ int ospf_ldp_sync_announce_update(struct ldp_igp_sync_announce announce)
FOR_ALL_INTERFACES (vrf, ifp)
ospf_ldp_sync_if_start(ifp, true);
- THREAD_TIMER_OFF(ospf->ldp_sync_cmd.t_hello);
- ospf->ldp_sync_cmd.t_hello = NULL;
+ THREAD_OFF(ospf->ldp_sync_cmd.t_hello);
ospf->ldp_sync_cmd.sequence = 0;
ospf_ldp_sync_hello_timer_add(ospf);
@@ -140,7 +139,7 @@ int ospf_ldp_sync_hello_update(struct ldp_igp_sync_hello hello)
FOR_ALL_INTERFACES (vrf, ifp)
ospf_ldp_sync_if_start(ifp, true);
} else {
- THREAD_TIMER_OFF(ospf->ldp_sync_cmd.t_hello);
+ THREAD_OFF(ospf->ldp_sync_cmd.t_hello);
ospf_ldp_sync_hello_timer_add(ospf);
}
ospf->ldp_sync_cmd.sequence = hello.sequence;
@@ -249,8 +248,7 @@ void ospf_ldp_sync_if_complete(struct interface *ifp)
if (ldp_sync_info && ldp_sync_info->enabled == LDP_IGP_SYNC_ENABLED) {
if (ldp_sync_info->state == LDP_IGP_SYNC_STATE_REQUIRED_NOT_UP)
ldp_sync_info->state = LDP_IGP_SYNC_STATE_REQUIRED_UP;
- THREAD_TIMER_OFF(ldp_sync_info->t_holddown);
- ldp_sync_info->t_holddown = NULL;
+ THREAD_OFF(ldp_sync_info->t_holddown);
ospf_if_recalculate_output_cost(ifp);
}
}
@@ -274,7 +272,7 @@ void ospf_ldp_sync_ldp_fail(struct interface *ifp)
if (ldp_sync_info &&
ldp_sync_info->enabled == LDP_IGP_SYNC_ENABLED &&
ldp_sync_info->state != LDP_IGP_SYNC_STATE_NOT_REQUIRED) {
- THREAD_TIMER_OFF(ldp_sync_info->t_holddown);
+ THREAD_OFF(ldp_sync_info->t_holddown);
ldp_sync_info->state = LDP_IGP_SYNC_STATE_REQUIRED_NOT_UP;
ospf_if_recalculate_output_cost(ifp);
}
@@ -337,7 +335,9 @@ void ospf_ldp_sync_if_remove(struct interface *ifp, bool remove)
* restore cost
*/
ols_debug("ldp_sync: Removed from if %s", ifp->name);
- THREAD_TIMER_OFF(ldp_sync_info->t_holddown);
+
+ THREAD_OFF(ldp_sync_info->t_holddown);
+
ldp_sync_info->state = LDP_IGP_SYNC_STATE_NOT_REQUIRED;
ospf_if_recalculate_output_cost(ifp);
if (!CHECK_FLAG(ldp_sync_info->flags, LDP_SYNC_FLAG_IF_CONFIG))
@@ -386,7 +386,6 @@ static int ospf_ldp_sync_holddown_timer(struct thread *thread)
ldp_sync_info = params->ldp_sync_info;
ldp_sync_info->state = LDP_IGP_SYNC_STATE_REQUIRED_UP;
- ldp_sync_info->t_holddown = NULL;
ols_debug("ldp_sync: holddown timer expired for %s state: %s",
ifp->name, "Sync achieved");
@@ -436,7 +435,6 @@ static int ospf_ldp_sync_hello_timer(struct thread *thread)
*/
ospf = ospf_lookup_by_vrf_id(VRF_DEFAULT);
if (ospf) {
- ospf->ldp_sync_cmd.t_hello = NULL;
vrf = vrf_lookup_by_id(ospf->vrf_id);
FOR_ALL_INTERFACES (vrf, ifp)
@@ -486,8 +484,8 @@ void ospf_ldp_sync_gbl_exit(struct ospf *ospf, bool remove)
UNSET_FLAG(ospf->ldp_sync_cmd.flags, LDP_SYNC_FLAG_ENABLE);
UNSET_FLAG(ospf->ldp_sync_cmd.flags, LDP_SYNC_FLAG_HOLDDOWN);
ospf->ldp_sync_cmd.holddown = LDP_IGP_SYNC_HOLDDOWN_DEFAULT;
- THREAD_TIMER_OFF(ospf->ldp_sync_cmd.t_hello);
- ospf->ldp_sync_cmd.t_hello = NULL;
+
+ THREAD_OFF(ospf->ldp_sync_cmd.t_hello);
/* turn off LDP-IGP Sync on all OSPF interfaces */
vrf = vrf_lookup_by_id(ospf->vrf_id);
@@ -980,8 +978,7 @@ DEFPY (no_mpls_ldp_sync,
SET_FLAG(ldp_sync_info->flags, LDP_SYNC_FLAG_IF_CONFIG);
ldp_sync_info->enabled = LDP_IGP_SYNC_DEFAULT;
ldp_sync_info->state = LDP_IGP_SYNC_STATE_NOT_REQUIRED;
- THREAD_TIMER_OFF(ldp_sync_info->t_holddown);
- ldp_sync_info->t_holddown = NULL;
+ THREAD_OFF(ldp_sync_info->t_holddown);
ospf_if_recalculate_output_cost(ifp);
return CMD_SUCCESS;
diff --git a/ospfd/ospf_sr.c b/ospfd/ospf_sr.c
index 4e32732c8..b0b273fb2 100644
--- a/ospfd/ospf_sr.c
+++ b/ospfd/ospf_sr.c
@@ -519,7 +519,7 @@ static void ospf_sr_stop(void)
osr_debug("SR (%s): Stop Segment Routing", __func__);
/* Disable any re-attempt to connect to Label Manager */
- THREAD_TIMER_OFF(OspfSR.t_start_lm);
+ THREAD_OFF(OspfSR.t_start_lm);
/* Release SRGB & SRLB if active. */
if (OspfSR.srgb.reserved)
diff --git a/pimd/pim_msdp.h b/pimd/pim_msdp.h
index 6caa3181e..15a1041e2 100644
--- a/pimd/pim_msdp.h
+++ b/pimd/pim_msdp.h
@@ -208,8 +208,8 @@ struct pim_msdp {
thread_add_write(mp->pim->msdp.master, pim_msdp_write, mp, mp->fd, \
&mp->t_write)
-#define PIM_MSDP_PEER_READ_OFF(mp) THREAD_READ_OFF(mp->t_read)
-#define PIM_MSDP_PEER_WRITE_OFF(mp) THREAD_WRITE_OFF(mp->t_write)
+#define PIM_MSDP_PEER_READ_OFF(mp) thread_cancel(&mp->t_read)
+#define PIM_MSDP_PEER_WRITE_OFF(mp) thread_cancel(&mp->t_write)
// struct pim_msdp *msdp;
struct pim_instance;
diff --git a/pimd/pim_neighbor.c b/pimd/pim_neighbor.c
index 4d6625bf6..167aa3c60 100644
--- a/pimd/pim_neighbor.c
+++ b/pimd/pim_neighbor.c
@@ -294,7 +294,7 @@ static int on_neighbor_jp_timer(struct thread *t)
static void pim_neighbor_start_jp_timer(struct pim_neighbor *neigh)
{
- THREAD_TIMER_OFF(neigh->jp_timer);
+ THREAD_OFF(neigh->jp_timer);
thread_add_timer(router->master, on_neighbor_jp_timer, neigh,
router->t_periodic, &neigh->jp_timer);
}
diff --git a/pimd/pim_upstream.c b/pimd/pim_upstream.c
index 6bb25c436..d95b092d9 100644
--- a/pimd/pim_upstream.c
+++ b/pimd/pim_upstream.c
@@ -1768,7 +1768,7 @@ void pim_upstream_start_register_stop_timer(struct pim_upstream *up,
{
uint32_t time;
- THREAD_TIMER_OFF(up->t_rs_timer);
+ THREAD_OFF(up->t_rs_timer);
if (!null_register) {
uint32_t lower = (0.5 * PIM_REGISTER_SUPPRESSION_PERIOD);
diff --git a/ripd/ripd.c b/ripd/ripd.c
index 07f24b5a9..059a0e2ef 100644
--- a/ripd/ripd.c
+++ b/ripd/ripd.c
@@ -3596,7 +3596,7 @@ static void rip_instance_disable(struct rip *rip)
RIP_TIMER_OFF(rip->t_triggered_interval);
/* Cancel read thread. */
- THREAD_READ_OFF(rip->t_read);
+ thread_cancel(&rip->t_read);
/* Close RIP socket. */
close(rip->sock);
diff --git a/ripd/ripd.h b/ripd/ripd.h
index 417bd5b3b..99718f7b9 100644
--- a/ripd/ripd.h
+++ b/ripd/ripd.h
@@ -405,7 +405,7 @@ enum rip_event {
#define RIP_TIMER_ON(T,F,V) thread_add_timer (master, (F), rinfo, (V), &(T))
/* Macro for timer turn off. */
-#define RIP_TIMER_OFF(X) THREAD_TIMER_OFF(X)
+#define RIP_TIMER_OFF(X) thread_cancel(&(X))
#define RIP_OFFSET_LIST_IN 0
#define RIP_OFFSET_LIST_OUT 1
diff --git a/ripngd/ripngd.h b/ripngd/ripngd.h
index 97291829b..a42c32ebb 100644
--- a/ripngd/ripngd.h
+++ b/ripngd/ripngd.h
@@ -351,7 +351,7 @@ enum ripng_event {
/* RIPng timer on/off macro. */
#define RIPNG_TIMER_ON(T,F,V) thread_add_timer (master, (F), rinfo, (V), &(T))
-#define RIPNG_TIMER_OFF(T) thread_cancel(&(T));
+#define RIPNG_TIMER_OFF(T) thread_cancel(&(T))
#define RIPNG_OFFSET_LIST_IN 0
#define RIPNG_OFFSET_LIST_OUT 1
diff --git a/watchfrr/watchfrr.c b/watchfrr/watchfrr.c
index cd5ec6725..319bd6a77 100644
--- a/watchfrr/watchfrr.c
+++ b/watchfrr/watchfrr.c
@@ -586,6 +586,7 @@ static void restart_done(struct daemon *dmn)
return;
}
THREAD_OFF(dmn->t_wakeup);
+
if (try_connect(dmn) < 0)
SET_WAKEUP_DOWN(dmn);
}
diff --git a/zebra/kernel_netlink.c b/zebra/kernel_netlink.c
index c53d28a18..601e3dfa8 100644
--- a/zebra/kernel_netlink.c
+++ b/zebra/kernel_netlink.c
@@ -1501,7 +1501,7 @@ void kernel_init(struct zebra_ns *zns)
void kernel_terminate(struct zebra_ns *zns, bool complete)
{
- THREAD_READ_OFF(zns->t_netlink);
+ thread_cancel(&zns->t_netlink);
if (zns->netlink.sock >= 0) {
close(zns->netlink.sock);
diff --git a/zebra/zebra_fpm.c b/zebra/zebra_fpm.c
index 73996c526..2bf48c627 100644
--- a/zebra/zebra_fpm.c
+++ b/zebra/zebra_fpm.c
@@ -489,7 +489,7 @@ static inline void zfpm_write_on(void)
*/
static inline void zfpm_read_off(void)
{
- THREAD_READ_OFF(zfpm_g->t_read);
+ thread_cancel(&zfpm_g->t_read);
}
/*
@@ -497,12 +497,12 @@ static inline void zfpm_read_off(void)
*/
static inline void zfpm_write_off(void)
{
- THREAD_WRITE_OFF(zfpm_g->t_write);
+ thread_cancel(&zfpm_g->t_write);
}
static inline void zfpm_connect_off(void)
{
- THREAD_TIMER_OFF(zfpm_g->t_connect);
+ thread_cancel(&zfpm_g->t_connect);
}
/*
@@ -1687,7 +1687,7 @@ static void zfpm_stop_stats_timer(void)
return;
zfpm_debug("Stopping existing stats timer");
- THREAD_TIMER_OFF(zfpm_g->t_stats);
+ thread_cancel(&zfpm_g->t_stats);
}
/*
diff --git a/zebra/zebra_ptm.c b/zebra/zebra_ptm.c
index 013cb6449..1e7b38086 100644
--- a/zebra/zebra_ptm.c
+++ b/zebra/zebra_ptm.c
@@ -215,7 +215,7 @@ static int zebra_ptm_send_message(char *data, int size)
ptm_cb.reconnect_time, &ptm_cb.t_timer);
return -1;
case BUFFER_EMPTY:
- THREAD_OFF(ptm_cb.t_write);
+ thread_cancel(&ptm_cb.t_write);
break;
case BUFFER_PENDING:
thread_add_write(zrouter.master, zebra_ptm_flush_messages, NULL,
diff --git a/zebra/zebra_pw.c b/zebra/zebra_pw.c
index cdcca1e93..ecae021db 100644
--- a/zebra/zebra_pw.c
+++ b/zebra/zebra_pw.c
@@ -102,7 +102,7 @@ void zebra_pw_del(struct zebra_vrf *zvrf, struct zebra_pw *pw)
hook_call(pw_uninstall, pw);
dplane_pw_uninstall(pw);
} else if (pw->install_retry_timer)
- THREAD_TIMER_OFF(pw->install_retry_timer);
+ thread_cancel(&pw->install_retry_timer);
/* unlink and release memory */
RB_REMOVE(zebra_pw_head, &zvrf->pseudowires, pw);
@@ -219,7 +219,7 @@ void zebra_pw_install_failure(struct zebra_pw *pw, int pwstatus)
pw->vrf_id, pw->ifname, PW_INSTALL_RETRY_INTERVAL);
/* schedule to retry later */
- THREAD_TIMER_OFF(pw->install_retry_timer);
+ thread_cancel(&pw->install_retry_timer);
thread_add_timer(zrouter.master, zebra_pw_install_retry, pw,
PW_INSTALL_RETRY_INTERVAL, &pw->install_retry_timer);
diff --git a/zebra/zebra_routemap.c b/zebra/zebra_routemap.c
index cf8cd0639..294f2c17f 100644
--- a/zebra/zebra_routemap.c
+++ b/zebra/zebra_routemap.c
@@ -1705,7 +1705,7 @@ void zebra_routemap_finish(void)
/* Set zebra_rmap_update_timer to 0 so that it wont schedule again */
zebra_rmap_update_timer = 0;
/* Thread off if any scheduled already */
- THREAD_TIMER_OFF(zebra_t_rmap_update);
+ thread_cancel(&zebra_t_rmap_update);
route_map_finish();
}