|
|
@@ -336,7 +336,7 @@ static bool pool_tset(struct pool *pool, bool *var)
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
-static bool pool_tclear(struct pool *pool, bool *var)
|
|
|
+bool pool_tclear(struct pool *pool, bool *var)
|
|
|
{
|
|
|
bool ret;
|
|
|
|
|
|
@@ -1592,10 +1592,10 @@ static bool get_upstream_work(struct work *work, bool lagging)
|
|
|
|
|
|
/* If this is the current pool and supports longpoll but has not sent
|
|
|
* a longpoll, send one now */
|
|
|
- if (unlikely(pool == current_pool() && !pool->is_lp && pool->hdr_path && !pool->lp_sent)) {
|
|
|
- pool->lp_sent = true;
|
|
|
- req_longpoll = true;
|
|
|
- url = pool->lp_url;
|
|
|
+ if (unlikely(!pool->is_lp && pool == current_pool() && pool->hdr_path &&
|
|
|
+ !pool_tset(pool, &pool->lp_sent))) {
|
|
|
+ req_longpoll = true;
|
|
|
+ url = pool->lp_url;
|
|
|
}
|
|
|
|
|
|
retry:
|