mdbx: minor refine mdbx_mmap().

Change-Id: Ic5026b6412ca93a00faeb8306975d896d85b475d
This commit is contained in:
Leo Yuriev 2017-07-26 12:16:47 +03:00
parent f57931f614
commit 1f7f3af16c
2 changed files with 6 additions and 9 deletions

View File

@ -4189,10 +4189,8 @@ bailout:
static int __cold mdbx_env_map(MDBX_env *env, size_t usedsize) { static int __cold mdbx_env_map(MDBX_env *env, size_t usedsize) {
int rc = mdbx_mmap(env->me_flags, &env->me_dxb_mmap, env->me_dbgeo.now, int rc = mdbx_mmap(env->me_flags, &env->me_dxb_mmap, env->me_dbgeo.now,
env->me_dbgeo.upper); env->me_dbgeo.upper);
if (unlikely(rc != MDBX_SUCCESS)) { if (unlikely(rc != MDBX_SUCCESS))
env->me_map = NULL;
return rc; return rc;
}
#ifdef MADV_DONTFORK #ifdef MADV_DONTFORK
if (madvise(env->me_map, env->me_mapsize, MADV_DONTFORK)) if (madvise(env->me_map, env->me_mapsize, MADV_DONTFORK))
@ -5125,10 +5123,8 @@ static void __cold mdbx_env_close0(MDBX_env *env) {
env->me_fd = INVALID_HANDLE_VALUE; env->me_fd = INVALID_HANDLE_VALUE;
} }
if (env->me_lck) { if (env->me_lck)
mdbx_munmap(&env->me_lck_mmap); mdbx_munmap(&env->me_lck_mmap);
env->me_lck = nullptr;
}
env->me_pid = 0; env->me_pid = 0;
env->me_oldest = nullptr; env->me_oldest = nullptr;

View File

@ -781,7 +781,7 @@ int mdbx_mmap(int flags, mdbx_mmap_t *map, size_t must, size_t limit) {
map->length = 0; map->length = 0;
map->current = 0; map->current = 0;
map->section = NULL; map->section = NULL;
map->address = MAP_FAILED; map->address = nullptr;
if (GetFileType(map->fd) != FILE_TYPE_DISK) if (GetFileType(map->fd) != FILE_TYPE_DISK)
return ERROR_FILE_OFFLINE; return ERROR_FILE_OFFLINE;
@ -874,7 +874,7 @@ int mdbx_mmap(int flags, mdbx_mmap_t *map, size_t must, size_t limit) {
if (!NT_SUCCESS(rc)) if (!NT_SUCCESS(rc))
return ntstatus2errcode(rc); return ntstatus2errcode(rc);
map->address = NULL; map->address = nullptr;
SIZE_T ViewSize = (flags & MDBX_RDONLY) ? must : limit; SIZE_T ViewSize = (flags & MDBX_RDONLY) ? must : limit;
rc = NtMapViewOfSection( rc = NtMapViewOfSection(
map->section, GetCurrentProcess(), &map->address, map->section, GetCurrentProcess(), &map->address,
@ -889,7 +889,7 @@ int mdbx_mmap(int flags, mdbx_mmap_t *map, size_t must, size_t limit) {
if (!NT_SUCCESS(rc)) { if (!NT_SUCCESS(rc)) {
NtClose(map->section); NtClose(map->section);
map->section = 0; map->section = 0;
map->address = MAP_FAILED; map->address = nullptr;
return ntstatus2errcode(rc); return ntstatus2errcode(rc);
} }
@ -907,6 +907,7 @@ int mdbx_mmap(int flags, mdbx_mmap_t *map, size_t must, size_t limit) {
return MDBX_SUCCESS; return MDBX_SUCCESS;
} }
map->length = 0; map->length = 0;
map->address = nullptr;
return errno; return errno;
#endif #endif
} }