mirror of
https://github.com/facebook/sapling.git
synced 2024-10-12 01:39:21 +03:00
indexedlog: extract empty mmap logic to a function
Summary: This starts a series of changes to make indexedlog work in "in-memory-only" mode. It is useful in 2 cases: - buffering blackbox writes (short term) - reused in Mononoke which does not want side-effect on disk (longer term) Reviewed By: sfilipco Differential Revision: D16044042 fbshipit-source-id: bdf35a9565e39e65c9ba4ddb949aa86412b4d496
This commit is contained in:
parent
2ec82860a2
commit
82b6c96907
@ -42,7 +42,7 @@ pub fn mmap_readonly(file: &File, len: Option<u64>) -> io::Result<(Mmap, u64)> {
|
||||
};
|
||||
let mmap = unsafe {
|
||||
if len == 0 {
|
||||
MmapOptions::new().len(1).map_anon()?.make_read_only()?
|
||||
mmap_empty()?
|
||||
} else {
|
||||
MmapOptions::new().len(len as usize).map(&file)?
|
||||
}
|
||||
@ -50,6 +50,11 @@ pub fn mmap_readonly(file: &File, len: Option<u64>) -> io::Result<(Mmap, u64)> {
|
||||
Ok((mmap, len))
|
||||
}
|
||||
|
||||
/// Return a [`Mmap`] that is expected to be empty.
|
||||
pub fn mmap_empty() -> io::Result<Mmap> {
|
||||
Ok(MmapOptions::new().len(1).map_anon()?.make_read_only()?)
|
||||
}
|
||||
|
||||
/// Open a path. Usually for locking purpose.
|
||||
///
|
||||
/// The path is assumed to be a directory. But this function does not do extra
|
||||
|
Loading…
Reference in New Issue
Block a user