diff --git a/src/core/lib/iomgr/timer_manager.c b/src/core/lib/iomgr/timer_manager.c
index dd7120695cabbb091723760683fc275f97135082..464907b4546778b4d78c0173e306d48512caf3df 100644
--- a/src/core/lib/iomgr/timer_manager.c
+++ b/src/core/lib/iomgr/timer_manager.c
@@ -116,8 +116,7 @@ static void timer_thread(void *unused) {
       gpr_mu_lock(&g_mu);
       // remove a waiter from the pool, and start another thread if necessary
       --g_waiter_count;
-      bool start_thread = g_waiter_count == 0;
-      if (start_thread && g_threaded) {
+      if (g_waiter_count == 0 && g_threaded) {
         start_timer_thread_and_unlock();
       } else {
         // if there's no thread waiting with a timeout, kick an existing waiter