File tree 1 file changed +8
-2
lines changed
compiler/rustc_data_structures/src
1 file changed +8
-2
lines changed Original file line number Diff line number Diff line change @@ -18,8 +18,14 @@ impl Mmap {
18
18
/// However in practice most callers do not ensure this, so uses of this function are likely unsound.
19
19
#[ inline]
20
20
pub unsafe fn map ( file : File ) -> io:: Result < Self > {
21
- // Safety: the caller must ensure that this is safe.
22
- unsafe { memmap2:: Mmap :: map ( & file) . map ( Mmap ) }
21
+ // By default, memmap2 creates shared mappings, implying that we could see updates to the
22
+ // file through the mapping. That would violate our precondition; so by requesting a
23
+ // map_copy_read_only we do not lose anything.
24
+ // This mapping mode also improves our support for filesystems such as cacheless virtiofs.
25
+ // For more details see https://github.com/rust-lang/rust/issues/122262
26
+ //
27
+ // SAFETY: The caller must ensure that this is safe.
28
+ unsafe { memmap2:: MmapOptions :: new ( ) . map_copy_read_only ( & file) . map ( Mmap ) }
23
29
}
24
30
}
25
31
You can’t perform that action at this time.
0 commit comments