Fix failure sending deferred aggregate lengths to clients on other threads (merge bug)
Former-commit-id: 915117ae7bac90fe41c7f36d97bcd654d6e90b62
This commit is contained in:
parent
070ea24010
commit
7cdbd48e7a
@ -743,11 +743,10 @@ void setDeferredReply(client *c, void *node, const char *s, size_t length) {
|
|||||||
void setDeferredAggregateLen(client *c, void *node, long length, char prefix) {
|
void setDeferredAggregateLen(client *c, void *node, long length, char prefix) {
|
||||||
serverAssert(length >= 0);
|
serverAssert(length >= 0);
|
||||||
|
|
||||||
/* Abort when *node is NULL: when the client should not accept writes
|
|
||||||
* we return NULL in addReplyDeferredLen() */
|
|
||||||
if (node == NULL) return;
|
|
||||||
|
|
||||||
if (FCorrectThread(c)) {
|
if (FCorrectThread(c)) {
|
||||||
|
/* Abort when *node is NULL: when the client should not accept writes
|
||||||
|
* we return NULL in addReplyDeferredLen() */
|
||||||
|
if (node == NULL) return;
|
||||||
char lenstr[128];
|
char lenstr[128];
|
||||||
size_t lenstr_len = sprintf(lenstr, "%c%ld\r\n", prefix, length);
|
size_t lenstr_len = sprintf(lenstr, "%c%ld\r\n", prefix, length);
|
||||||
setDeferredReply(c, node, lenstr, lenstr_len);
|
setDeferredReply(c, node, lenstr, lenstr_len);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user