pub enum FileHolder {
Strong(Arc<ErofsFile>),
Weak(Weak<ErofsFile>),
}Expand description
Manages the in-memory lifecycle of an active pager-backed file.
To prevent memory leaks, the pager receiver initially holds files as Weak references. When a
client checks out a VMO (e.g., via get_backing_memory), this is upgraded to Strong so the
file and its metadata are not dropped while actively mapped. Once the client closes all VMO
handles, Zircon’s VMO_ZERO_CHILDREN signal downgrades this back to Weak, allowing cleanup
if no other system handles are open.
Variants§
Auto Trait Implementations§
impl Freeze for FileHolder
impl !RefUnwindSafe for FileHolder
impl Send for FileHolder
impl Sync for FileHolder
impl Unpin for FileHolder
impl UnsafeUnpin for FileHolder
impl !UnwindSafe for FileHolder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
Source§impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more