Eliminate some complexity
diff --git a/src/core/lib/iomgr/timer_manager.c b/src/core/lib/iomgr/timer_manager.c
index 8b83cc0..dd71206 100644
--- a/src/core/lib/iomgr/timer_manager.c
+++ b/src/core/lib/iomgr/timer_manager.c
@@ -44,19 +44,27 @@
   struct completed_thread *next;
 } completed_thread;
 
+// global mutex
 static gpr_mu g_mu;
+// are we multi-threaded
 static bool g_threaded;
+// cv to wait until a thread is needed
 static gpr_cv g_cv_wait;
+// cv for notification when threading ends
 static gpr_cv g_cv_shutdown;
+// number of threads in the system
 static int g_thread_count;
+// number of threads sitting around waiting
 static int g_waiter_count;
+// linked list of threads that have completed (and need joining)
 static completed_thread *g_completed_threads;
+// was the manager kicked by the timer system
 static bool g_kicked;
+// is there a thread waiting until the next timer should fire?
 static bool g_has_timed_waiter;
+// generation counter to track which thread is waiting for the next timer
 static uint64_t g_timed_waiter_generation;
 
-#define MAX_WAITERS 2
-
 static void timer_thread(void *unused);
 
 static void gc_completed_threads(void) {
@@ -147,28 +155,21 @@
         next = inf_future;
         gpr_log(GPR_DEBUG, "sleep until kicked");
       }
-      bool timed_out = gpr_cv_wait(&g_cv_wait, &g_mu, next);
-      // if we timed out and we have too many waiters, maybe exit this thread
-      bool should_stop = (timed_out && g_waiter_count > MAX_WAITERS);
-      gpr_log(GPR_DEBUG, "wait ended: was_timed:%d timed_out:%d kicked:%d",
+      gpr_cv_wait(&g_cv_wait, &g_mu, next);
+      gpr_log(GPR_DEBUG, "wait ended: was_timed:%d kicked:%d",
               my_timed_waiter_generation == g_timed_waiter_generation,
-              timed_out, g_kicked);
+              g_kicked);
       // if this was the timed waiter, then we need to check timers, and flag
       // that there's now no timed waiter... we'll look for a replacement if
       // there's work to do after checking timers (code above)
       if (my_timed_waiter_generation == g_timed_waiter_generation) {
         g_has_timed_waiter = false;
-        should_stop = false;
       }
       // if this was a kick from the timer system, consume it (and don't stop
       // this thread yet)
       if (g_kicked) {
         grpc_timer_consume_kick();
         g_kicked = false;
-        should_stop = false;
-      }
-      if (should_stop) {
-        break;
       }
     }
     gpr_mu_unlock(&g_mu);