Revert "Change get_work to use a timeout when trying to tq_pop as a sanity failsafe in case of unusual circumstances." This reverts commit 7b9b0781146dde69378d53bafd3c8817fb8909e9. Conflicts: util.c Timeout was a bandaid for other going-idle reasons and never helped. Revert it.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
diff --git a/main.c b/main.c
index ea7e603..477417c 100644
--- a/main.c
+++ b/main.c
@@ -1225,8 +1225,6 @@ static void flush_requests(bool longpoll)
static bool get_work(struct work *work, bool queued)
{
- struct timeval now;
- struct timespec abstime = {};
struct thr_info *thr = &thr_info[0];
struct work *work_heap;
bool ret = false;
@@ -1235,9 +1233,6 @@ static bool get_work(struct work *work, bool queued)
getwork_requested++;
retry:
- gettimeofday(&now, NULL);
- abstime.tv_sec = now.tv_sec + 60;
-
if (unlikely(!queued && !queue_request())) {
applog(LOG_WARNING, "Failed to queue_request in get_work");
goto out;
@@ -1265,12 +1260,10 @@ retry:
applog(LOG_WARNING, "Resumed retrieving work from server");
}
- /* Wait for 1st response, or get cached response. We really should
- * never time out on the pop request but something might go amiss :/
- */
- work_heap = tq_pop(thr->q, &abstime);
+ /* wait for 1st response, or get cached response */
+ work_heap = tq_pop(thr->q, NULL);
if (unlikely(!work_heap)) {
- applog(LOG_INFO, "Failed to tq_pop in get_work");
+ applog(LOG_WARNING, "Failed to tq_pop in get_work");
goto out;
}
dec_queued();
diff --git a/util.c b/util.c
index ad4cd40..982f9ec 100644
--- a/util.c
+++ b/util.c
@@ -573,11 +573,8 @@ void *tq_pop(struct thread_q *tq, const struct timespec *abstime)
rc = pthread_cond_timedwait(&tq->cond, &tq->mutex, abstime);
else
rc = pthread_cond_wait(&tq->cond, &tq->mutex);
- if (unlikely(rc)) {
- if (rc == ETIMEDOUT)
- applog(LOG_WARNING, "Timed out waiting in tq_pop");
+ if (rc)
goto out;
- }
if (list_empty(&tq->q))
goto out;