Try switching pools if for some reason we end up with only idle pools and have ended up current_pool set to an idle one.
diff --git a/cgminer.c b/cgminer.c
index 95e3568..3e74d4b 100644
--- a/cgminer.c
+++ b/cgminer.c
@@ -6875,6 +6875,9 @@ static void *watchpool_thread(void __maybe_unused *userdata)
}
}
+ if (current_pool()->idle)
+ switch_pools(NULL);
+
if (pool_strategy == POOL_ROTATE && now.tv_sec - rotate_tv.tv_sec > 60 * opt_rotate_period) {
cgtime(&rotate_tv);
switch_pools(NULL);