mirror of
https://github.com/fluencelabs/redis
synced 2025-04-01 15:21:03 +00:00
Removed old comments and dead code from freeClient().
This commit is contained in:
parent
e4025ea926
commit
2e027c48e5
@ -111,9 +111,7 @@ redisClient *createClient(int fd) {
|
|||||||
c->bpop.keys = dictCreate(&setDictType,NULL);
|
c->bpop.keys = dictCreate(&setDictType,NULL);
|
||||||
c->bpop.timeout = 0;
|
c->bpop.timeout = 0;
|
||||||
c->bpop.target = NULL;
|
c->bpop.target = NULL;
|
||||||
c->io_keys = listCreate();
|
|
||||||
c->watched_keys = listCreate();
|
c->watched_keys = listCreate();
|
||||||
listSetFreeMethod(c->io_keys,decrRefCountVoid);
|
|
||||||
c->pubsub_channels = dictCreate(&setDictType,NULL);
|
c->pubsub_channels = dictCreate(&setDictType,NULL);
|
||||||
c->pubsub_patterns = listCreate();
|
c->pubsub_patterns = listCreate();
|
||||||
listSetFreeMethod(c->pubsub_patterns,decrRefCountVoid);
|
listSetFreeMethod(c->pubsub_patterns,decrRefCountVoid);
|
||||||
@ -663,13 +661,11 @@ void freeClient(redisClient *c) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Note that if the client we are freeing is blocked into a blocking
|
/* Free the query buffer */
|
||||||
* call, we have to set querybuf to NULL *before* to call
|
|
||||||
* unblockClientWaitingData() to avoid processInputBuffer() will get
|
|
||||||
* called. Also it is important to remove the file events after
|
|
||||||
* this, because this call adds the READABLE event. */
|
|
||||||
sdsfree(c->querybuf);
|
sdsfree(c->querybuf);
|
||||||
c->querybuf = NULL;
|
c->querybuf = NULL;
|
||||||
|
|
||||||
|
/* Deallocate structures used to block on blocking ops. */
|
||||||
if (c->flags & REDIS_BLOCKED)
|
if (c->flags & REDIS_BLOCKED)
|
||||||
unblockClientWaitingData(c);
|
unblockClientWaitingData(c);
|
||||||
dictRelease(c->bpop.keys);
|
dictRelease(c->bpop.keys);
|
||||||
@ -677,11 +673,13 @@ void freeClient(redisClient *c) {
|
|||||||
/* UNWATCH all the keys */
|
/* UNWATCH all the keys */
|
||||||
unwatchAllKeys(c);
|
unwatchAllKeys(c);
|
||||||
listRelease(c->watched_keys);
|
listRelease(c->watched_keys);
|
||||||
|
|
||||||
/* Unsubscribe from all the pubsub channels */
|
/* Unsubscribe from all the pubsub channels */
|
||||||
pubsubUnsubscribeAllChannels(c,0);
|
pubsubUnsubscribeAllChannels(c,0);
|
||||||
pubsubUnsubscribeAllPatterns(c,0);
|
pubsubUnsubscribeAllPatterns(c,0);
|
||||||
dictRelease(c->pubsub_channels);
|
dictRelease(c->pubsub_channels);
|
||||||
listRelease(c->pubsub_patterns);
|
listRelease(c->pubsub_patterns);
|
||||||
|
|
||||||
/* Close socket, unregister events, and remove list of replies and
|
/* Close socket, unregister events, and remove list of replies and
|
||||||
* accumulated arguments. */
|
* accumulated arguments. */
|
||||||
if (c->fd != -1) {
|
if (c->fd != -1) {
|
||||||
@ -691,12 +689,14 @@ void freeClient(redisClient *c) {
|
|||||||
}
|
}
|
||||||
listRelease(c->reply);
|
listRelease(c->reply);
|
||||||
freeClientArgv(c);
|
freeClientArgv(c);
|
||||||
|
|
||||||
/* Remove from the list of clients */
|
/* Remove from the list of clients */
|
||||||
if (c->fd != -1) {
|
if (c->fd != -1) {
|
||||||
ln = listSearchKey(server.clients,c);
|
ln = listSearchKey(server.clients,c);
|
||||||
redisAssert(ln != NULL);
|
redisAssert(ln != NULL);
|
||||||
listDelNode(server.clients,ln);
|
listDelNode(server.clients,ln);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* When client was just unblocked because of a blocking operation,
|
/* When client was just unblocked because of a blocking operation,
|
||||||
* remove it from the list of unblocked clients. */
|
* remove it from the list of unblocked clients. */
|
||||||
if (c->flags & REDIS_UNBLOCKED) {
|
if (c->flags & REDIS_UNBLOCKED) {
|
||||||
@ -704,9 +704,9 @@ void freeClient(redisClient *c) {
|
|||||||
redisAssert(ln != NULL);
|
redisAssert(ln != NULL);
|
||||||
listDelNode(server.unblocked_clients,ln);
|
listDelNode(server.unblocked_clients,ln);
|
||||||
}
|
}
|
||||||
listRelease(c->io_keys);
|
|
||||||
/* Master/slave cleanup.
|
/* Master/slave cleanup Case 1:
|
||||||
* Case 1: we lost the connection with a slave. */
|
* we lost the connection with a slave. */
|
||||||
if (c->flags & REDIS_SLAVE) {
|
if (c->flags & REDIS_SLAVE) {
|
||||||
if (c->replstate == REDIS_REPL_SEND_BULK) {
|
if (c->replstate == REDIS_REPL_SEND_BULK) {
|
||||||
if (c->repldbfd != -1) close(c->repldbfd);
|
if (c->repldbfd != -1) close(c->repldbfd);
|
||||||
@ -724,7 +724,8 @@ void freeClient(redisClient *c) {
|
|||||||
refreshGoodSlavesCount();
|
refreshGoodSlavesCount();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Case 2: we lost the connection with the master. */
|
/* Master/slave cleanup Case 2:
|
||||||
|
* we lost the connection with the master. */
|
||||||
if (c->flags & REDIS_MASTER) replicationHandleMasterDisconnection();
|
if (c->flags & REDIS_MASTER) replicationHandleMasterDisconnection();
|
||||||
|
|
||||||
/* If this client was scheduled for async freeing we need to remove it
|
/* If this client was scheduled for async freeing we need to remove it
|
||||||
@ -735,7 +736,8 @@ void freeClient(redisClient *c) {
|
|||||||
listDelNode(server.clients_to_close,ln);
|
listDelNode(server.clients_to_close,ln);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Release memory */
|
/* Release other dynamically allocated client structure fields,
|
||||||
|
* and finally release the client structure itself. */
|
||||||
if (c->name) decrRefCount(c->name);
|
if (c->name) decrRefCount(c->name);
|
||||||
zfree(c->argv);
|
zfree(c->argv);
|
||||||
freeClientMultiState(c);
|
freeClientMultiState(c);
|
||||||
|
@ -480,8 +480,6 @@ typedef struct redisClient {
|
|||||||
int slave_listening_port; /* As configured with: SLAVECONF listening-port */
|
int slave_listening_port; /* As configured with: SLAVECONF listening-port */
|
||||||
multiState mstate; /* MULTI/EXEC state */
|
multiState mstate; /* MULTI/EXEC state */
|
||||||
blockingState bpop; /* blocking state */
|
blockingState bpop; /* blocking state */
|
||||||
list *io_keys; /* Keys this client is waiting to be loaded from the
|
|
||||||
* swap file in order to continue. */
|
|
||||||
list *watched_keys; /* Keys WATCHED for MULTI/EXEC CAS */
|
list *watched_keys; /* Keys WATCHED for MULTI/EXEC CAS */
|
||||||
dict *pubsub_channels; /* channels a client is interested in (SUBSCRIBE) */
|
dict *pubsub_channels; /* channels a client is interested in (SUBSCRIBE) */
|
||||||
list *pubsub_patterns; /* patterns a client is interested in (SUBSCRIBE) */
|
list *pubsub_patterns; /* patterns a client is interested in (SUBSCRIBE) */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user