mirror of
https://github.com/mikedilger/chorus.git
synced 2026-05-03 06:51:42 +00:00
Don't just presume ErrorKind::Other is always "Out of space"
This commit is contained in:
parent
08bbcb19a7
commit
8c239499ff
@ -98,25 +98,28 @@ impl EventStore {
|
||||
Ok(offset) => return Ok(offset),
|
||||
Err(e) => {
|
||||
if e.kind() == std::io::ErrorKind::Other {
|
||||
// presume it was Out of Space
|
||||
// Determine the new size
|
||||
let new_file_len = {
|
||||
let file_len = self.event_map_file_len.load(Ordering::Relaxed);
|
||||
file_len + EVENT_MAP_CHUNK
|
||||
};
|
||||
if e.to_string() == "Out of space" {
|
||||
// Determine the new size
|
||||
let new_file_len = {
|
||||
let file_len = self.event_map_file_len.load(Ordering::Relaxed);
|
||||
file_len + EVENT_MAP_CHUNK
|
||||
};
|
||||
|
||||
// Grow the file
|
||||
self.event_map_file.set_len(new_file_len as u64)?;
|
||||
// Grow the file
|
||||
self.event_map_file.set_len(new_file_len as u64)?;
|
||||
|
||||
// Resize the memory map
|
||||
self.event_map.resize(new_file_len)?;
|
||||
// Resize the memory map
|
||||
self.event_map.resize(new_file_len)?;
|
||||
|
||||
// Save this new length
|
||||
self.event_map_file_len
|
||||
.store(new_file_len, Ordering::Relaxed);
|
||||
// Save this new length
|
||||
self.event_map_file_len
|
||||
.store(new_file_len, Ordering::Relaxed);
|
||||
|
||||
// Try again
|
||||
continue;
|
||||
// Try again
|
||||
continue;
|
||||
} else {
|
||||
return Err(e.into());
|
||||
}
|
||||
} else {
|
||||
return Err(e.into());
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user