diff --git a/src/stratifier.c b/src/stratifier.c index 6784cb99..6a72b799 100644 --- a/src/stratifier.c +++ b/src/stratifier.c @@ -303,6 +303,8 @@ typedef union { struct proxy_base { UT_hash_handle hh; UT_hash_handle sh; /* For subproxy hashlist */ + proxy_t *next; /* For retired subproxies */ + proxy_t *prev; int id; int subid; @@ -399,10 +401,10 @@ struct stratifier_data { /* Generator message priority */ int gen_priority; - int proxy_count; + int proxy_count; /* Total proxies generated (not necessarily still alive) */ proxy_t *proxy; /* Current proxy in use */ proxy_t *proxies; /* Hashlist of all proxies */ - proxy_t *old_proxies; /* Hashlist of proxies now no longer in user */ + proxy_t *retired_proxies; /* Hashlist of proxies now no longer in user */ mutex_t proxy_lock; /* Protects all proxy data */ proxy_t *subproxy; /* Which subproxy this sdata belongs to in proxy mode */ }; @@ -1175,7 +1177,7 @@ static void new_proxy(sdata_t *sdata, const int id) if (proxy) { exists = true; HASH_DEL(sdata->proxies, proxy); - HASH_ADD_INT(sdata->old_proxies, id, proxy); + DL_APPEND(sdata->retired_proxies, proxy); if (proxy == sdata->proxy) current = true; }