summary refs log tree commit diff stats
path: root/lib/pure
diff options
context:
space:
mode:
authorNick Greenfield <boyd.greenfield@gmail.com>2014-07-23 11:25:21 -0700
committerNick Greenfield <boyd.greenfield@gmail.com>2014-07-23 11:25:21 -0700
commit272fd42c970d48d526f0d5ab8dc4fef4d8f177e7 (patch)
treea485167318c8ab438b429f9c52ecef94ab3a5261 /lib/pure
parentdcf1425eb996db5d39a23c0360573f1addd4a850 (diff)
downloadNim-272fd42c970d48d526f0d5ab8dc4fef4d8f177e7.tar.gz
Add automatic MAP_POPULATE flag for opening read_only (MAP_PRIVATE) and shared (MAP_SHARED) mmap files.
Diffstat (limited to 'lib/pure')
-rw-r--r--lib/pure/memfiles.nim4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/pure/memfiles.nim b/lib/pure/memfiles.nim
index 31fefc6c8..ffeb0beff 100644
--- a/lib/pure/memfiles.nim
+++ b/lib/pure/memfiles.nim
@@ -54,7 +54,7 @@ proc mapMem*(m: var TMemFile, mode: TFileMode = fmRead,
       nil,
       mappedSize,
       if readonly: PROT_READ else: PROT_READ or PROT_WRITE,
-      if readonly: MAP_PRIVATE else: MAP_SHARED,
+      if readonly: (MAP_PRIVATE or MAP_POPULATE) else: (MAP_SHARED or MAP_POPULATE),
       m.handle, offset)
     if result == cast[pointer](MAP_FAILED):
       osError(osLastError())
@@ -207,7 +207,7 @@ proc open*(filename: string, mode: TFileMode = fmRead,
       nil,
       result.size,
       if readonly: PROT_READ else: PROT_READ or PROT_WRITE,
-      if readonly: MAP_PRIVATE else: MAP_SHARED,
+      if readonly: (MAP_PRIVATE or MAP_POPULATE) else: (MAP_SHARED or MAP_POPULATE),
       result.handle,
       offset)