Only clear the longpoll block data if we successfully received a longpoll, and do it before converting the longpoll data to work to avoid the staging thread believing it got the new work before the longpoll.
diff --git a/main.c b/main.c
index 08dc54a..c2c471a 100644
--- a/main.c
+++ b/main.c
@@ -1891,6 +1891,7 @@ static void *longpoll_thread(void *userdata)
val = json_rpc_call(curl, lp_url, rpc_userpass, rpc_req,
false, true);
if (likely(val)) {
+ memcpy(longpoll_block, current_block, 36);
convert_to_work(val);
failures = 0;
json_decref(val);
@@ -1922,7 +1923,6 @@ static void *longpoll_thread(void *userdata)
goto out;
}
}
- memcpy(longpoll_block, current_block, 36);
}
out: