We need uncorkWithoutSending

This commit is contained in:
Alex Hultman
2023-05-11 12:48:12 +02:00
parent 20e7c5aaf0
commit 62b5feb540
2 changed files with 10 additions and 2 deletions
+6
View File
@@ -123,6 +123,12 @@ protected:
getLoopData()->corkedSocket = this;
}
void uncorkWithoutSending() {
if (isCorked()) {
getLoopData()->corkedSocket = nullptr;
}
}
/* Cork this socket. Only one socket may ever be corked per-loop at any given time */
void cork() {
/* Extra check for invalid corking of others */
+4 -2
View File
@@ -119,8 +119,10 @@ public:
} else {
webSocketData->buffer.append(header + written, (size_t) header_length - (size_t) written);
}
/* We cannot still be corked if we have backpressure */
Super::uncork();
/* We cannot still be corked if we have backpressure.
* We also cannot uncork normally since it will re-write the already buffered
* up backpressure again. */
Super::uncorkWithoutSending();
return BACKPRESSURE;
}
} else {