Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
2e027c48
"vscode:/vscode.git/clone" did not exist on "892565f924c53ead19f90afc5f652d20ca6e69c8"
Commit
2e027c48
authored
Dec 03, 2013
by
antirez
Browse files
Removed old comments and dead code from freeClient().
parent
e4025ea9
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/networking.c
View file @
2e027c48
...
...
@@ -111,9 +111,7 @@ redisClient *createClient(int fd) {
c
->
bpop
.
keys
=
dictCreate
(
&
setDictType
,
NULL
);
c
->
bpop
.
timeout
=
0
;
c
->
bpop
.
target
=
NULL
;
c
->
io_keys
=
listCreate
();
c
->
watched_keys
=
listCreate
();
listSetFreeMethod
(
c
->
io_keys
,
decrRefCountVoid
);
c
->
pubsub_channels
=
dictCreate
(
&
setDictType
,
NULL
);
c
->
pubsub_patterns
=
listCreate
();
listSetFreeMethod
(
c
->
pubsub_patterns
,
decrRefCountVoid
);
...
...
@@ -663,13 +661,11 @@ void freeClient(redisClient *c) {
return
;
}
/* Note that if the client we are freeing is blocked into a blocking
* 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. */
/* Free the query buffer */
sdsfree
(
c
->
querybuf
);
c
->
querybuf
=
NULL
;
/* Deallocate structures used to block on blocking ops. */
if
(
c
->
flags
&
REDIS_BLOCKED
)
unblockClientWaitingData
(
c
);
dictRelease
(
c
->
bpop
.
keys
);
...
...
@@ -677,11 +673,13 @@ void freeClient(redisClient *c) {
/* UNWATCH all the keys */
unwatchAllKeys
(
c
);
listRelease
(
c
->
watched_keys
);
/* Unsubscribe from all the pubsub channels */
pubsubUnsubscribeAllChannels
(
c
,
0
);
pubsubUnsubscribeAllPatterns
(
c
,
0
);
dictRelease
(
c
->
pubsub_channels
);
listRelease
(
c
->
pubsub_patterns
);
/* Close socket, unregister events, and remove list of replies and
* accumulated arguments. */
if
(
c
->
fd
!=
-
1
)
{
...
...
@@ -691,12 +689,14 @@ void freeClient(redisClient *c) {
}
listRelease
(
c
->
reply
);
freeClientArgv
(
c
);
/* Remove from the list of clients */
if
(
c
->
fd
!=
-
1
)
{
ln
=
listSearchKey
(
server
.
clients
,
c
);
redisAssert
(
ln
!=
NULL
);
listDelNode
(
server
.
clients
,
ln
);
}
/* When client was just unblocked because of a blocking operation,
* remove it from the list of unblocked clients. */
if
(
c
->
flags
&
REDIS_UNBLOCKED
)
{
...
...
@@ -704,9 +704,9 @@ void freeClient(redisClient *c) {
redisAssert
(
ln
!=
NULL
);
listDelNode
(
server
.
unblocked_clients
,
ln
);
}
listRelease
(
c
->
io_keys
);
/* Master/slave cleanup
.
*
Case 1:
we lost the connection with a slave. */
/* Master/slave cleanup
Case 1:
* we lost the connection with a slave. */
if
(
c
->
flags
&
REDIS_SLAVE
)
{
if
(
c
->
replstate
==
REDIS_REPL_SEND_BULK
)
{
if
(
c
->
repldbfd
!=
-
1
)
close
(
c
->
repldbfd
);
...
...
@@ -724,7 +724,8 @@ void freeClient(redisClient *c) {
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 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
);
}
/* Release memory */
/* Release other dynamically allocated client structure fields,
* and finally release the client structure itself. */
if
(
c
->
name
)
decrRefCount
(
c
->
name
);
zfree
(
c
->
argv
);
freeClientMultiState
(
c
);
...
...
src/redis.h
View file @
2e027c48
...
...
@@ -480,8 +480,6 @@ typedef struct redisClient {
int
slave_listening_port
;
/* As configured with: SLAVECONF listening-port */
multiState
mstate
;
/* MULTI/EXEC 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 */
dict
*
pubsub_channels
;
/* channels a client is interested in (SUBSCRIBE) */
list
*
pubsub_patterns
;
/* patterns a client is interested in (SUBSCRIBE) */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment