sausage-vfs: review fixes (fallible growth, symlink flags, stream cancel, sized reads, timestamps, error kinds, linker shadowing)
API: Layer::stat(path, follow), Layer::readlink, Open::follow, Stat::symlink and Entry::symlink. Process::idle documents the shutdown order: abort, await the task, await idle, release locks.
This commit is contained in:
+4
-1
@@ -36,7 +36,10 @@ impl Process {
|
||||
.await
|
||||
.map_err(std::io::Error::other)?
|
||||
}
|
||||
/// Wait for all outstanding system calls. The caller must prevent new operations.
|
||||
/// Wait for all outstanding system calls.
|
||||
/// First abort the guest task. Then await its JoinHandle, or drop its store.
|
||||
/// Only then await idle before releasing locks. Abort alone does not stop a running poll.
|
||||
/// This ordering also prevents later memory writes, which need no blocking guard.
|
||||
pub async fn idle(&self) {
|
||||
loop {
|
||||
let notified = self.0.idle.notified();
|
||||
|
||||
Reference in New Issue
Block a user