add _O_NOINHERIT when opening files on Windows (see #2650)
authorSimon Marlow <marlowsd@gmail.com>
Wed, 20 May 2009 13:09:26 +0000 (13:09 +0000)
committerSimon Marlow <marlowsd@gmail.com>
Wed, 20 May 2009 13:09:26 +0000 (13:09 +0000)
include/HsBase.h

index b749c58..afbff12 100644 (file)
@@ -688,9 +688,11 @@ INLINE int __hscore_hs_fileno (FILE *f) { return fileno (f); }
 INLINE int __hscore_open(char *file, int how, mode_t mode) {
 #ifdef __MINGW32__
        if ((how & O_WRONLY) || (how & O_RDWR) || (how & O_APPEND))
-         return _sopen(file,how,_SH_DENYRW,mode);
+         return _sopen(file,how | _O_NOINHERIT,_SH_DENYRW,mode);
+          // _O_NOINHERIT: see #2650
        else
-         return _sopen(file,how,_SH_DENYWR,mode);
+         return _sopen(file,how | _O_NOINHERIT,_SH_DENYWR,mode);
+          // _O_NOINHERIT: see #2650
 #else
        return open(file,how,mode);
 #endif