Prevent dangling lock when we can't free the client
Former-commit-id: 3c373494d63b21744b264f0a47e6999bcdda6b2b
This commit is contained in:
parent
591cc30206
commit
96be5f6a6c
@ -1630,10 +1630,13 @@ void sendReplyToClient(aeEventLoop *el, int fd, void *privdata, int mask) {
|
||||
if (writeToClient(fd,c,1) == C_ERR)
|
||||
{
|
||||
AeLocker ae;
|
||||
c->lock.lock();
|
||||
c->lock();
|
||||
ae.arm(c);
|
||||
if (c->flags & CLIENT_CLOSE_ASAP)
|
||||
freeClient(c);
|
||||
{
|
||||
if (!freeClient(c))
|
||||
c->unlock();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user