Skip to main content

SharedFileLock

Struct SharedFileLock 

Source
pub struct SharedFileLock(/* private fields */);
Expand description

An owned shared descriptor lock released explicitly before its file closes.

Duplicated or inherited descriptors must not extend this guard’s lock lifetime. Independent acquisitions remain independent. Callers own any shared guard lifetime, paths, namespace custody and cleanup policy; dropping it removes no file.

Implementations§

Source§

impl SharedFileLock

Source

pub fn acquire(file: File) -> Result<Self>

Acquire a blocking shared lock on an already-opened regular file.

This consumes the descriptor without reopening it or imposing a deadline.

§Errors

Returns the original regular-descriptor admission or native lock error.

Source

pub const fn file(&self) -> &File ⓘ

Borrow the locked descriptor; clones do not extend the guard’s lifetime.

Callers must coordinate explicit unlock or lock-mode changes through this descriptor or its duplicates with their own guard lifetime contract.

Trait Implementations§

Source§

impl Debug for SharedFileLock

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Drop for SharedFileLock

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.