Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
3d7263aa
Commit
3d7263aa
authored
Dec 03, 2013
by
antirez
Browse files
Removed old comments and dead code from freeClient().
parent
33345364
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/networking.c
View file @
3d7263aa
...
@@ -100,9 +100,7 @@ redisClient *createClient(int fd) {
...
@@ -100,9 +100,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
);
...
@@ -650,13 +648,11 @@ void freeClient(redisClient *c) {
...
@@ -650,13 +648,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
);
...
@@ -664,11 +660,13 @@ void freeClient(redisClient *c) {
...
@@ -664,11 +660,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
)
{
...
@@ -678,12 +676,14 @@ void freeClient(redisClient *c) {
...
@@ -678,12 +676,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
)
{
...
@@ -691,9 +691,9 @@ void freeClient(redisClient *c) {
...
@@ -691,9 +691,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
&&
c
->
repldbfd
!=
-
1
)
if
(
c
->
replstate
==
REDIS_REPL_SEND_BULK
&&
c
->
repldbfd
!=
-
1
)
close
(
c
->
repldbfd
);
close
(
c
->
repldbfd
);
...
@@ -709,7 +709,8 @@ void freeClient(redisClient *c) {
...
@@ -709,7 +709,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
...
@@ -720,7 +721,8 @@ void freeClient(redisClient *c) {
...
@@ -720,7 +721,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
);
...
...
src/redis.h
View file @
3d7263aa
...
@@ -475,8 +475,6 @@ typedef struct redisClient {
...
@@ -475,8 +475,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) */
...
...
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