diff options
Diffstat (limited to 'web/server/web_client_cache.c')
-rw-r--r-- | web/server/web_client_cache.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/web/server/web_client_cache.c b/web/server/web_client_cache.c index 5aa3af22e..364fc76b3 100644 --- a/web/server/web_client_cache.c +++ b/web/server/web_client_cache.c @@ -91,20 +91,19 @@ struct web_client *web_client_get_from_cache(void) { // get it from avail DOUBLE_LINKED_LIST_REMOVE_ITEM_UNSAFE(web_clients_cache.avail.head, w, cache.prev, cache.next); web_clients_cache.avail.count--; - spinlock_unlock(&web_clients_cache.avail.spinlock); + spinlock_unlock(&web_clients_cache.avail.spinlock); web_client_reuse_from_cache(w); - spinlock_lock(&web_clients_cache.used.spinlock); + web_clients_cache.used.reused++; } else { spinlock_unlock(&web_clients_cache.avail.spinlock); - - // allocate it w = web_client_create(&netdata_buffers_statistics.buffers_web); - spinlock_lock(&web_clients_cache.used.spinlock); + + w->id = global_statistics_web_client_connected(); web_clients_cache.used.allocated++; } @@ -115,8 +114,8 @@ struct web_client *web_client_get_from_cache(void) { // initialize it w->use_count++; - w->id = global_statistics_web_client_connected(); w->mode = WEB_CLIENT_MODE_GET; + memset(w->transaction, 0, sizeof(w->transaction)); return w; } |