Event support - demonstration in example scheme

This commit is contained in:
Jeremy Soller 2016-09-23 17:54:39 -06:00
parent 616dfbc055
commit 0e8487cf83
12 changed files with 239 additions and 31 deletions

View file

@ -72,6 +72,8 @@ pub fn close(fd: usize) -> Result<usize> {
file
};
context::event::unregister(fd, file.scheme, file.number);
let scheme = {
let schemes = scheme::schemes();
let scheme = schemes.get(file.scheme).ok_or(Error::new(EBADF))?;
@ -113,7 +115,9 @@ pub fn fevent(fd: usize, flags: usize) -> Result<usize> {
let scheme = schemes.get(file.scheme).ok_or(Error::new(EBADF))?;
scheme.clone()
};
scheme.fevent(file.number, flags)
scheme.fevent(file.number, flags)?;
context::event::register(fd, file.scheme, file.number);
Ok(0)
}
/// Get the canonical path of the file