diff options
Diffstat (limited to 'src/backend/storage/ipc/dsm_impl.c')
-rw-r--r-- | src/backend/storage/ipc/dsm_impl.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/backend/storage/ipc/dsm_impl.c b/src/backend/storage/ipc/dsm_impl.c index 49f4c98620c..873867e8568 100644 --- a/src/backend/storage/ipc/dsm_impl.c +++ b/src/backend/storage/ipc/dsm_impl.c @@ -959,6 +959,7 @@ dsm_impl_pin_segment(dsm_handle handle, void *impl_private, { #ifdef USE_DSM_WINDOWS case DSM_IMPL_WINDOWS: + if (IsUnderPostmaster) { HANDLE hmap; @@ -984,8 +985,8 @@ dsm_impl_pin_segment(dsm_handle handle, void *impl_private, * is unpinned, dsm_impl_unpin_segment can close it. */ *impl_private_pm_handle = hmap; - break; } + break; #endif default: break; @@ -1008,6 +1009,7 @@ dsm_impl_unpin_segment(dsm_handle handle, void **impl_private) { #ifdef USE_DSM_WINDOWS case DSM_IMPL_WINDOWS: + if (IsUnderPostmaster) { if (*impl_private && !DuplicateHandle(PostmasterHandle, *impl_private, @@ -1025,8 +1027,8 @@ dsm_impl_unpin_segment(dsm_handle handle, void **impl_private) } *impl_private = NULL; - break; } + break; #endif default: break; |