From d8eaa0b4e9a22c11976c100a60211e41b7a707a0 Mon Sep 17 00:00:00 2001 From: Con Kolivas Date: Tue, 24 Feb 2015 10:45:44 +1100 Subject: [PATCH] Rate limit proxy recruiting to one thread at a time --- 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); }