When we add a delay to rdb save for test purposes we still need to check for aborts

Former-commit-id: b057b4d05aae6c08b855bfc9ae48d41ad0e881f8
This commit is contained in:
John Sully 2021-03-10 02:53:15 +00:00
parent 5d7f6d0cd3
commit f86dee6eb3

View File

@ -1146,8 +1146,14 @@ int rdbSaveKeyValuePair(rio *rdb, robj_roptr key, robj_roptr val, const expireEn
if (rdbSaveObject(rdb,val,key) == -1) return -1;
/* Delay return if required (for testing) */
if (serverTL->getRdbKeySaveDelay())
usleep(serverTL->getRdbKeySaveDelay());
if (serverTL->getRdbKeySaveDelay()) {
int sleepTime = serverTL->getRdbKeySaveDelay();
while (!g_pserver->rdbThreadVars.fRdbThreadCancel && sleepTime > 0) {
int sleepThisTime = std::min(100, sleepTime);
usleep(sleepThisTime);
sleepTime -= sleepThisTime;
}
}
/* Save expire entry after as it will apply to the previously loaded key */
/* This is because we update the expire datastructure directly without buffering */