summaryrefslogtreecommitdiff
path: root/src/windows/Erebos/Storage/Platform.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/windows/Erebos/Storage/Platform.hs')
-rw-r--r--src/windows/Erebos/Storage/Platform.hs13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/windows/Erebos/Storage/Platform.hs b/src/windows/Erebos/Storage/Platform.hs
new file mode 100644
index 0000000..76c940b
--- /dev/null
+++ b/src/windows/Erebos/Storage/Platform.hs
@@ -0,0 +1,13 @@
+module Erebos.Storage.Platform (
+ createFileExclusive,
+) where
+
+import Data.Bits
+
+import System.IO
+import System.Win32.File
+import System.Win32.Types
+
+createFileExclusive :: FilePath -> IO Handle
+createFileExclusive path = do
+ hANDLEToHandle =<< createFile path gENERIC_WRITE (fILE_SHARE_READ .|. fILE_SHARE_DELETE) Nothing cREATE_NEW fILE_ATTRIBUTE_NORMAL Nothing