protect from file size change on multi-process load #1599

This commit is contained in:
guoling
2025-11-24 11:46:14 +08:00
parent d18e2b92a7
commit 09c27e6d7b
+7
View File
@@ -72,6 +72,13 @@ void MMKV::loadFromFile() {
#endif
if (!m_file->isFileValid()) {
m_file->reloadFromFile(m_expectedCapacity);
} else if (isMultiProcess()) {
// the file size may change by other process between instance creation and loadFromFile
// because we have lazy load
auto actualFileSize = m_file->getActualFileSize();
if (actualFileSize != m_file->getFileSize()) {
m_file->reloadFromFile(m_expectedCapacity);
}
}
if (!m_file->isFileValid()) {
MMKVError("file [%s] not valid", m_path.c_str());