summaryrefslogtreecommitdiffstats
path: root/libimagstore
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2016-10-13 14:28:26 +0200
committerMatthias Beyer <mail@beyermatthias.de>2016-10-15 15:49:00 +0200
commit52367edc83d87221826253e0c50b82a2f65c44f7 (patch)
tree4368c413a078ed15e869d6c19f84c7da9c697fbc /libimagstore
parentc0eb329abf37007659f15bc655d1a65aab421241 (diff)
Remove unwrap()s in file abstraction code
Diffstat (limited to 'libimagstore')
-rw-r--r--libimagstore/src/file_abstraction.rs14
1 files changed, 8 insertions, 6 deletions
diff --git a/libimagstore/src/file_abstraction.rs b/libimagstore/src/file_abstraction.rs
index 9a190842..a958b216 100644
--- a/libimagstore/src/file_abstraction.rs
+++ b/libimagstore/src/file_abstraction.rs
@@ -58,7 +58,7 @@ mod fs {
debug!("Getting lazy file: {:?}", self);
match *self {
FileAbstraction::Absent(ref f) => {
- let map = MAP.lock().unwrap();
+ let map = try!(MAP.lock().map_err_into(SEK::LockPoisoned));
return map.get(f).cloned().ok_or(SEK::FileNotFound.into_error());
},
};
@@ -67,7 +67,7 @@ mod fs {
pub fn write_file_content(&mut self, buf: &[u8]) -> Result<(), SE> {
match *self {
FileAbstraction::Absent(ref f) => {
- let mut map = MAP.lock().unwrap();
+ let mut map = try!(MAP.lock().map_err_into(SEK::LockPoisoned));
if let Some(ref mut cur) = map.get_mut(f) {
let mut vec = cur.get_mut();
vec.clear();
@@ -82,19 +82,21 @@ mod fs {
}
pub fn remove_file(path: &PathBuf) -> Result<(), SE> {
- MAP.lock().unwrap().remove(path);
- Ok(())
+ try!(MAP.lock().map_err_into(SEK::LockPoisoned))
+ .remove(path)
+ .map(|_| ())
+ .ok_or(SEK::FileNotFound.into_error())
}
pub fn copy(from: &PathBuf, to: &PathBuf) -> Result<(), SE> {
- let mut map = MAP.lock().unwrap();
+ let mut map = try!(MAP.lock().map_err_into(SEK::LockPoisoned));
let a = try!(map.get(from).cloned().ok_or(SEK::FileNotFound.into_error()));
map.insert(to.clone(), a);
Ok(())
}
pub fn rename(from: &PathBuf, to: &PathBuf) -> Result<(), SE> {
- let mut map = MAP.lock().unwrap();
+ let mut map = try!(MAP.lock().map_err_into(SEK::LockPoisoned));
let a = try!(map.get(from).cloned().ok_or(SEK::FileNotFound.into_error()));
map.insert(to.clone(), a);
Ok(())