From 7f129e93c8546b92f68cbc4c8a304104bb24ce3b Mon Sep 17 00:00:00 2001 From: Con Kolivas Date: Tue, 24 Feb 2015 11:39:13 +1100 Subject: [PATCH] Revert "Revert "Rate limit proxy recruiting to one thread at a time"" This reverts commit 80c0ddb346dc488be6c89daefdfb419e97dab5c2. Wrong revert. --- src/generator.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/generator.c b/src/generator.c index d76f31f3..475339dc 100644 --- a/src/generator.c +++ b/src/generator.c @@ -107,6 +107,7 @@ struct proxy_instance { bool disabled; /* Subproxy no longer to be used */ bool reconnect; /* We need to drop and reconnect */ bool reconnecting; /* Testing in progress */ + bool recruiting; /* Recruiting in progress */ bool alive; mutex_t notify_lock; @@ -1698,6 +1699,7 @@ static void *proxy_recruit(void *arg) store_proxy(gdata, proxy); } else add_subproxy(parent, proxy); + parent->recruiting = false; return NULL; } @@ -1705,6 +1707,9 @@ static void recruit_subproxy(proxy_instance_t *proxi) { pthread_t pth; + if (proxi->recruiting) + return; + proxi->recruiting = true; create_pthread(&pth, proxy_recruit, proxi); }