diff --git a/src/context/file.rs b/src/context/file.rs index f6d8186593..8f1d34c100 100644 --- a/src/context/file.rs +++ b/src/context/file.rs @@ -70,7 +70,7 @@ pub struct FileDescriptor { impl FileDescription { /// Try closing a file, although at this point the description will be destroyed anyway, if /// doing so fails. - pub fn try_close(self, wait_for_res: bool) -> Result<()> { + pub fn try_close(self) -> Result<()> { event::unregister_file(self.scheme, self.number); let scheme = scheme::schemes() @@ -78,18 +78,14 @@ impl FileDescription { .ok_or(Error::new(EBADF))? .clone(); - if wait_for_res { - scheme.close(self.number) - } else { - scheme.on_close(self.number) - } + scheme.on_close(self.number) } } impl FileDescriptor { - pub fn close(self, wait_for_res: bool) -> Result<()> { + pub fn close(self) -> Result<()> { if let Ok(file) = Arc::try_unwrap(self.description).map(RwLock::into_inner) { - file.try_close(wait_for_res)?; + file.try_close()?; } Ok(()) } diff --git a/src/context/memory.rs b/src/context/memory.rs index 27737181b9..890eb5b21e 100644 --- a/src/context/memory.rs +++ b/src/context/memory.rs @@ -71,10 +71,7 @@ impl UnmapResult { .and_then(|scheme| scheme.kfunmap(number, base_offset, self.size, self.flags)); if let Ok(fd) = Arc::try_unwrap(description) { - fd.into_inner().try_close( - // wait_for_result - false, - )?; + fd.into_inner().try_close()?; } funmap_result?; diff --git a/src/scheme/user.rs b/src/scheme/user.rs index f567751f59..086f461da0 100644 --- a/src/scheme/user.rs +++ b/src/scheme/user.rs @@ -1102,10 +1102,7 @@ impl UserInner { } if let Some(to_close) = to_close { - let _ = to_close.try_close( - // wait_for_result - false, - ); + let _ = to_close.try_close(); } Ok(()) } diff --git a/src/syscall/fs.rs b/src/syscall/fs.rs index c57dad0b34..62f0753c29 100644 --- a/src/syscall/fs.rs +++ b/src/syscall/fs.rs @@ -177,10 +177,7 @@ pub fn close(fd: FileHandle) -> Result<()> { context.remove_file(fd).ok_or(Error::new(EBADF))? }; - file.close( - // wait_for_result - true, - ) + file.close() } fn duplicate_file(fd: FileHandle, user_buf: UserSliceRo) -> Result { diff --git a/src/syscall/process.rs b/src/syscall/process.rs index f841ee0401..93b7f7e0d5 100644 --- a/src/syscall/process.rs +++ b/src/syscall/process.rs @@ -50,10 +50,7 @@ pub fn exit_this_context() -> ! { // Files must be closed while context is valid so that messages can be passed for file_opt in close_files.into_iter() { if let Some(file) = file_opt { - let _ = file.close( - // wait_for_result - false, - ); + let _ = file.close(); } } drop(addrspace_opt);