mirror of
https://github.com/isar/libmdbx.git
synced 2025-02-03 15:50:51 +08:00
mdbx: fix posix mdbx_lck_destroy().
This commit is contained in:
parent
f51c8dae72
commit
fcb63130d6
@ -89,7 +89,7 @@ bailout:
|
||||
void mdbx_lck_destroy(MDB_env *env) {
|
||||
if (env->me_lfd != INVALID_HANDLE_VALUE) {
|
||||
/* try get exclusive access */
|
||||
if (mdbx_lck_op(env->me_lfd, F_SETLK, F_WRLCK, 0) == 0) {
|
||||
if (env->me_txns && mdbx_lck_op(env->me_lfd, F_SETLK, F_WRLCK, 0) == 0) {
|
||||
/* got exclusive, drown mutexes */
|
||||
int rc = pthread_mutex_destroy(&env->me_txns->mti_rmutex);
|
||||
if (rc == 0)
|
||||
|
@ -4160,8 +4160,10 @@ static void __cold mdbx_env_close0(MDB_env *env) {
|
||||
env->me_valgrind_handle = -1;
|
||||
#endif
|
||||
}
|
||||
if (env->me_fd != INVALID_HANDLE_VALUE)
|
||||
if (env->me_fd != INVALID_HANDLE_VALUE) {
|
||||
(void)mdbx_closefile(env->me_fd);
|
||||
env->me_fd = INVALID_HANDLE_VALUE;
|
||||
}
|
||||
|
||||
mdbx_munmap((void *)env->me_txns,
|
||||
(env->me_maxreaders - 1) * sizeof(MDB_reader) +
|
||||
@ -4169,8 +4171,10 @@ static void __cold mdbx_env_close0(MDB_env *env) {
|
||||
env->me_txns = NULL;
|
||||
env->me_pid = 0;
|
||||
|
||||
if (env->me_lfd != INVALID_HANDLE_VALUE)
|
||||
if (env->me_lfd != INVALID_HANDLE_VALUE) {
|
||||
(void)mdbx_closefile(env->me_lfd);
|
||||
env->me_lfd = INVALID_HANDLE_VALUE;
|
||||
}
|
||||
}
|
||||
|
||||
int __cold mdbx_env_close_ex(MDB_env *env, int dont_sync) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user