This commit is contained in:
Jeremy Soller 2016-09-28 11:22:01 -06:00
parent 4488cde338
commit a68d5a5237

View file

@ -114,12 +114,22 @@ pub fn dup(fd: usize) -> Result<usize> {
file
};
let new_id = {
let scheme = {
let schemes = scheme::schemes();
let scheme = schemes.get(file.scheme).ok_or(Error::new(EBADF))?;
scheme.clone()
};
scheme.dup(file.number)
scheme.dup(file.number)?
};
let contexts = context::contexts();
let context_lock = contexts.current().ok_or(Error::new(ESRCH))?;
let context = context_lock.read();
context.add_file(::context::file::File {
scheme: file.scheme,
number: new_id
}).ok_or(Error::new(EMFILE))
}
/// Register events for file