mirror of
https://github.com/fluencelabs/redis
synced 2025-06-21 21:11:33 +00:00
TLS: Implement support for write barrier.
This commit is contained in:
committed by
Yossi Gottlieb
parent
5a47794606
commit
6b6294807c
@ -1305,19 +1305,18 @@ int handleClientsWithPendingWrites(void) {
|
||||
/* If after the synchronous writes above we still have data to
|
||||
* output to the client, we need to install the writable handler. */
|
||||
if (clientHasPendingReplies(c)) {
|
||||
int ae_flags = AE_WRITABLE;
|
||||
int ae_barrier = 0;
|
||||
/* For the fsync=always policy, we want that a given FD is never
|
||||
* served for reading and writing in the same event loop iteration,
|
||||
* so that in the middle of receiving the query, and serving it
|
||||
* to the client, we'll call beforeSleep() that will do the
|
||||
* actual fsync of AOF to disk. AE_BARRIER ensures that. */
|
||||
* actual fsync of AOF to disk. the write barrier ensures that. */
|
||||
if (server.aof_state == AOF_ON &&
|
||||
server.aof_fsync == AOF_FSYNC_ALWAYS)
|
||||
{
|
||||
ae_flags |= AE_BARRIER;
|
||||
ae_barrier = 1;
|
||||
}
|
||||
/* TODO: Handle write barriers in connection (also see tlsProcessPendingData) */
|
||||
if (connSetWriteHandler(c->conn, sendReplyToClient) == C_ERR) {
|
||||
if (connSetWriteHandlerWithBarrier(c->conn, sendReplyToClient, ae_barrier) == C_ERR) {
|
||||
freeClientAsync(c);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user