From 579bd429193eb8d7b1f65a00bed88aff851c5ef5 Mon Sep 17 00:00:00 2001 From: Con Kolivas Date: Fri, 15 Jul 2011 08:53:05 +1000 Subject: [PATCH] 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. --- main.c | 13 +++---------- util.c | 5 +---- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/main.c b/main.c index ea7e603f..477417c1 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 ad4cd408..982f9ec9 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;