mdbx: check readers while opening.

Change-Id: Ieefc78d0d3922e3f98efa557f8e67aada68c4841
This commit is contained in:
Leonid Yuriev 2019-09-11 18:58:23 +03:00
parent 8f08e1c7ed
commit 0d8b59fa3b

View File

@ -6964,6 +6964,9 @@ int __cold mdbx_env_open(MDBX_env *env, const char *path, unsigned flags,
if (rc != MDBX_SUCCESS) if (rc != MDBX_SUCCESS)
goto bailout; goto bailout;
} else { } else {
rc = mdbx_reader_check0(env, false, NULL);
if (MDBX_IS_ERROR(rc))
goto bailout;
if ((env->me_flags & MDBX_RDONLY) == 0) { if ((env->me_flags & MDBX_RDONLY) == 0) {
while (env->me_lck->mti_envmode == MDBX_RDONLY) { while (env->me_lck->mti_envmode == MDBX_RDONLY) {
if (mdbx_atomic_compare_and_swap32(&env->me_lck->mti_envmode, if (mdbx_atomic_compare_and_swap32(&env->me_lck->mti_envmode,