mirror of https://github.com/zkat/cacache-rs.git
fix(mmap): mmap needs equal buffer lengths (#33)
Fixes: https://github.com/zkat/cacache-rs/issues/32
This commit is contained in:
parent
d9291763ce
commit
684a3e8a68
|
|
@ -34,9 +34,10 @@ impl Writer {
|
||||||
.recursive(true)
|
.recursive(true)
|
||||||
.create(&tmp_path)
|
.create(&tmp_path)
|
||||||
.to_internal()?;
|
.to_internal()?;
|
||||||
let tmpfile = NamedTempFile::new_in(tmp_path).to_internal()?;
|
let mut tmpfile = NamedTempFile::new_in(tmp_path).to_internal()?;
|
||||||
let mmap = if let Some(size) = size {
|
let mmap = if let Some(size) = size {
|
||||||
if size <= MAX_MMAP_SIZE {
|
if size <= MAX_MMAP_SIZE {
|
||||||
|
tmpfile.as_file_mut().set_len(size as u64).to_internal()?;
|
||||||
unsafe { MmapMut::map_mut(tmpfile.as_file()).ok() }
|
unsafe { MmapMut::map_mut(tmpfile.as_file()).ok() }
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
|
|
|
||||||
|
|
@ -312,15 +312,14 @@ fn bucket_entries(bucket: &Path) -> InternalResult<Vec<SerializableMetadata>> {
|
||||||
|
|
||||||
async fn bucket_entries_async(bucket: &Path) -> InternalResult<Vec<SerializableMetadata>> {
|
async fn bucket_entries_async(bucket: &Path) -> InternalResult<Vec<SerializableMetadata>> {
|
||||||
let file_result = afs::File::open(bucket).await;
|
let file_result = afs::File::open(bucket).await;
|
||||||
let file;
|
let file = if let Err(err) = file_result {
|
||||||
if let Err(err) = file_result {
|
|
||||||
if err.kind() == ErrorKind::NotFound {
|
if err.kind() == ErrorKind::NotFound {
|
||||||
return Ok(Vec::new());
|
return Ok(Vec::new());
|
||||||
}
|
}
|
||||||
return Err(err).to_internal()?;
|
return Err(err).to_internal()?;
|
||||||
} else {
|
} else {
|
||||||
file = file_result.unwrap();
|
file_result.unwrap()
|
||||||
}
|
};
|
||||||
let mut vec = Vec::new();
|
let mut vec = Vec::new();
|
||||||
let mut lines = BufReader::new(file).lines();
|
let mut lines = BufReader::new(file).lines();
|
||||||
while let Some(line) = lines.next().await {
|
while let Some(line) = lines.next().await {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue