From a077c9f9a4242a7d87034b6f2b211d3c0e8ea7ab Mon Sep 17 00:00:00 2001 From: Con Kolivas Date: Sun, 3 Nov 2013 22:29:29 +1100 Subject: [PATCH] Make hash_pop signal the work scheduler each time it waits on the conditional that it should look for more work. --- cgminer.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cgminer.c b/cgminer.c index b41a69f7..cdbf701d 100644 --- a/cgminer.c +++ b/cgminer.c @@ -5923,6 +5923,7 @@ static struct work *hash_pop(void) cgtime(&now); then.tv_sec = now.tv_sec + 10; then.tv_nsec = now.tv_usec * 1000; + pthread_cond_signal(&gws_cond); rc = pthread_cond_timedwait(&getq->cond, stgd_lock, &then); /* Check again for !no_work as multiple threads may be * waiting on this condition and another may set the @@ -5931,8 +5932,10 @@ static struct work *hash_pop(void) no_work = true; applog(LOG_WARNING, "Waiting for work to be available from pools."); } - } else + } else { + pthread_cond_signal(&gws_cond); pthread_cond_wait(&getq->cond, stgd_lock); + } } if (no_work) {