mirror of
https://codeberg.org/redict/redict.git
synced 2025-01-23 08:38:27 -05:00
Merge pull request #6849 from oranagra/free_client_mutex
freeClientAsync don't lock mutex if there's just one thread
This commit is contained in:
commit
7cf53252ee
@ -1163,9 +1163,14 @@ void freeClientAsync(client *c) {
|
|||||||
* may access the list while Redis uses I/O threads. All the other accesses
|
* may access the list while Redis uses I/O threads. All the other accesses
|
||||||
* are in the context of the main thread while the other threads are
|
* are in the context of the main thread while the other threads are
|
||||||
* idle. */
|
* idle. */
|
||||||
static pthread_mutex_t async_free_queue_mutex = PTHREAD_MUTEX_INITIALIZER;
|
|
||||||
if (c->flags & CLIENT_CLOSE_ASAP || c->flags & CLIENT_LUA) return;
|
if (c->flags & CLIENT_CLOSE_ASAP || c->flags & CLIENT_LUA) return;
|
||||||
c->flags |= CLIENT_CLOSE_ASAP;
|
c->flags |= CLIENT_CLOSE_ASAP;
|
||||||
|
if (server.io_threads_num == 1) {
|
||||||
|
/* no need to bother with locking if there's just one thread (the main thread) */
|
||||||
|
listAddNodeTail(server.clients_to_close,c);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
static pthread_mutex_t async_free_queue_mutex = PTHREAD_MUTEX_INITIALIZER;
|
||||||
pthread_mutex_lock(&async_free_queue_mutex);
|
pthread_mutex_lock(&async_free_queue_mutex);
|
||||||
listAddNodeTail(server.clients_to_close,c);
|
listAddNodeTail(server.clients_to_close,c);
|
||||||
pthread_mutex_unlock(&async_free_queue_mutex);
|
pthread_mutex_unlock(&async_free_queue_mutex);
|
||||||
|
Loading…
Reference in New Issue
Block a user