Ensure async rehash completes before we start a new time. Degrad to sync hash if necessary to ensure this

Former-commit-id: 0f830facc7c6bc6668af9bb2e10b6e13a13227aa
This commit is contained in:
John Sully 2021-10-21 22:46:17 +00:00
parent 9955ecd94a
commit 3b788bac1e

View File

@ -2112,13 +2112,12 @@ void databasesCron(bool fMainThread) {
if (g_pserver->activerehashing) {
for (j = 0; j < dbs_per_call; j++) {
if (serverTL->rehashCtl != nullptr) {
if (dictRehashSomeAsync(serverTL->rehashCtl, 5)) {
if (dictRehashSomeAsync(serverTL->rehashCtl, rehashes_per_ms)) {
break;
} else {
}
dictCompleteRehashAsync(serverTL->rehashCtl, true /*fFree*/);
serverTL->rehashCtl = nullptr;
}
}
serverAssert(serverTL->rehashCtl == nullptr);
::dict *dict = g_pserver->db[rehash_db]->dictUnsafeKeyOnly();