mdbx: fix to avoid ERROR_USER_MAPPED_FILE on Windows (minor race condition).

This commit is contained in:
Leonid Yuriev
2019-10-27 22:35:25 +03:00
parent 4ee3bc8be9
commit b274c4a730
2 changed files with 54 additions and 44 deletions

View File

@@ -423,6 +423,14 @@ MDBX_INTERNAL_FUNC int mdbx_lck_init(MDBX_env *env,
MDBX_INTERNAL_FUNC int mdbx_lck_destroy(MDBX_env *env,
MDBX_env *inprocess_neighbor) {
(void)inprocess_neighbor;
/* LY: should unmap before releasing the locks to avoid race condition and
* STATUS_USER_MAPPED_FILE/ERROR_USER_MAPPED_FILE */
if (env->me_map)
mdbx_munmap(&env->me_dxb_mmap);
if (env->me_lck)
mdbx_munmap(&env->me_lck_mmap);
lck_unlock(env);
return MDBX_SUCCESS;
}