From b970cc95d55ce8b35f58e9a67db91ef6ec66d6a7 Mon Sep 17 00:00:00 2001 From: Mathias Eggert Date: Fri, 7 Aug 2020 10:18:14 +0200 Subject: [PATCH] always open a stream with FILE_SHARE_DELETE according to the POST https://github.com/golang/go/issues/32088#issuecomment-502850674 --- Release/src/streams/fileio_win32.cpp | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/Release/src/streams/fileio_win32.cpp b/Release/src/streams/fileio_win32.cpp index 057dd9b670..571fdc747c 100644 --- a/Release/src/streams/fileio_win32.cpp +++ b/Release/src/streams/fileio_win32.cpp @@ -147,13 +147,21 @@ void _get_create_flags( } // C++ specifies what permissions to deny, Windows which permissions to give, - dwShareMode = 0x3; - switch (prot) - { - case _SH_DENYRW: dwShareMode = 0x0; break; - case _SH_DENYWR: dwShareMode = 0x1; break; - case _SH_DENYRD: dwShareMode = 0x2; break; - } + dwShareMode = FILE_SHARE_READ | FILE_SHARE_WRITE; + switch (prot) { + case _SH_DENYRW: + dwShareMode = 0x0; + break; + case _SH_DENYWR: + dwShareMode = FILE_SHARE_READ; + break; + case _SH_DENYRD: + dwShareMode = FILE_SHARE_WRITE; + break; + } + + // according to the post of: https://github.com/golang/go/issues/32088#issuecomment-502850674 + dwShareMode |= FILE_SHARE_DELETE; } ///