Harden MMKV close lifecycle handling #1669

This commit is contained in:
guoling
2026-07-29 14:56:48 +08:00
parent f3b27766a2
commit 4e3535f2c8
27 changed files with 316 additions and 73 deletions
+10
View File
@@ -32,6 +32,10 @@ ThreadLock::ThreadLock() : m_lock{0} {
}
ThreadLock::~ThreadLock() {
while (m_lockCount > 0) {
LeaveCriticalSection(&m_lock);
--m_lockCount;
}
DeleteCriticalSection(&m_lock);
}
@@ -44,9 +48,15 @@ void ThreadLock::initialize() {
void ThreadLock::lock() {
EnterCriticalSection(&m_lock);
++m_lockCount;
}
void ThreadLock::unlock() {
if (m_lockCount == 0) {
MMKVError("attempt to unlock unowned lock %p", &m_lock);
return;
}
--m_lockCount;
LeaveCriticalSection(&m_lock);
}