From: Bjorn Ketelaars Subject: tmux: remove redundant event_del/evtimer_del calls To: nicm@openbsd.org Cc: tech@openbsd.org Date: Thu, 6 Aug 2026 13:25:42 +0200 While reading event_add(3), I noticed: "If the event in the ev argument already has a scheduled timeout, the old timeout will be replaced by the new one." I grepped base for calls to event_del()/evtimer_del() immediately before event_add()/evtimer_add() and found several redundant deletions in tmux. Since event_add() handles pending events internally, these extra calls can be removed. OK? diff --git usr.bin/tmux/input.c usr.bin/tmux/input.c index ecf07dd617c..b13c7c33590 100644 --- usr.bin/tmux/input.c +++ usr.bin/tmux/input.c @@ -827,7 +827,6 @@ input_start_ground_timer(struct input_ctx *ictx) { struct timeval tv = { .tv_sec = 5, .tv_usec = 0 }; - event_del(&ictx->ground_timer); event_add(&ictx->ground_timer, &tv); } @@ -3503,7 +3502,6 @@ input_start_request_timer(struct input_ctx *ictx) { struct timeval tv = { .tv_sec = 0, .tv_usec = 100000 }; - event_del(&ictx->request_timer); event_add(&ictx->request_timer, &tv); } diff --git usr.bin/tmux/server-client.c usr.bin/tmux/server-client.c index 27b7688fe5f..1d7de6b5549 100644 --- usr.bin/tmux/server-client.c +++ usr.bin/tmux/server-client.c @@ -1140,7 +1140,6 @@ have_event: log_debug("click timer started"); tv.tv_sec = KEYC_CLICK_TIMEOUT / 1000; tv.tv_usec = (KEYC_CLICK_TIMEOUT % 1000) * 1000L; - evtimer_del(&c->click_timer); evtimer_add(&c->click_timer, &tv); } } @@ -1580,7 +1579,6 @@ try_again: tv.tv_sec = repeat / 1000; tv.tv_usec = (repeat % 1000) * 1000L; - evtimer_del(&c->repeat_timer); evtimer_add(&c->repeat_timer, &tv); } else { c->flags &= ~CLIENT_REPEAT; diff --git usr.bin/tmux/tty.c usr.bin/tmux/tty.c index 4f2c6a33eab..ad5035460b1 100644 --- usr.bin/tmux/tty.c +++ usr.bin/tmux/tty.c @@ -324,7 +324,6 @@ tty_start_start_timer(struct tty *tty) struct timeval tv = { .tv_sec = TTY_QUERY_TIMEOUT }; log_debug("%s: start timer started", c->name); - evtimer_del(&tty->start_timer); evtimer_add(&tty->start_timer, &tv); } diff --git usr.bin/tmux/window.c usr.bin/tmux/window.c index 5067ab5960a..c7fc1b0e73d 100644 --- usr.bin/tmux/window.c +++ usr.bin/tmux/window.c @@ -2508,7 +2508,6 @@ window_pane_scrollbar_start_timer(struct window_pane *wp) "pane-scrollbars-timeout"); tv.tv_sec = delay / 1000; tv.tv_usec = (delay % 1000) * 1000L; - evtimer_del(&wp->sb_auto_timer); evtimer_add(&wp->sb_auto_timer, &tv); }