Browse Source

Rate limit proxy recruiting to one thread at a time

master
Con Kolivas 10 years ago
parent
commit
d8eaa0b4e9
  1. 5
      src/generator.c

5
src/generator.c

@ -107,6 +107,7 @@ struct proxy_instance {
bool disabled; /* Subproxy no longer to be used */ bool disabled; /* Subproxy no longer to be used */
bool reconnect; /* We need to drop and reconnect */ bool reconnect; /* We need to drop and reconnect */
bool reconnecting; /* Testing in progress */ bool reconnecting; /* Testing in progress */
bool recruiting; /* Recruiting in progress */
bool alive; bool alive;
mutex_t notify_lock; mutex_t notify_lock;
@ -1698,6 +1699,7 @@ static void *proxy_recruit(void *arg)
store_proxy(gdata, proxy); store_proxy(gdata, proxy);
} else } else
add_subproxy(parent, proxy); add_subproxy(parent, proxy);
parent->recruiting = false;
return NULL; return NULL;
} }
@ -1705,6 +1707,9 @@ static void recruit_subproxy(proxy_instance_t *proxi)
{ {
pthread_t pth; pthread_t pth;
if (proxi->recruiting)
return;
proxi->recruiting = true;
create_pthread(&pth, proxy_recruit, proxi); create_pthread(&pth, proxy_recruit, proxi);
} }

Loading…
Cancel
Save