Skip to main content

AdvisoryFileLock

Trait AdvisoryFileLock 

Source
pub trait AdvisoryFileLock {
    // Required methods
    fn lock(&self, file_lock_mode: FileLockMode) -> Result<(), FileLockError>;
    fn try_lock(
        &self,
        file_lock_mode: FileLockMode,
    ) -> Result<(), FileLockError>;
    fn unlock(&self) -> Result<(), FileLockError>;
}
Expand description

An advisory lock for files.

An advisory lock provides a mutual-exclusion mechanism among processes which explicitly acquires and releases the lock. Processes that are not aware of the lock will ignore it.

AdvisoryFileLock provides following features:

  • Blocking or non-blocking operations.
  • Shared or exclusive modes.
  • All operations are thread-safe.

§Notes

AdvisoryFileLock has following limitations:

  • Locks are allowed only on files, but not directories.

Required Methods§

Source

fn lock(&self, file_lock_mode: FileLockMode) -> Result<(), FileLockError>

Acquire the advisory file lock.

lock is blocking; it will block the current thread until it succeeds or errors.

Source

fn try_lock(&self, file_lock_mode: FileLockMode) -> Result<(), FileLockError>

Try to acquire the advisory file lock.

try_lock returns immediately.

Source

fn unlock(&self) -> Result<(), FileLockError>

Unlock this advisory file lock.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl AdvisoryFileLock for File

Source§

fn lock(&self, file_lock_mode: FileLockMode) -> Result<(), FileLockError>

Source§

fn try_lock(&self, file_lock_mode: FileLockMode) -> Result<(), FileLockError>

Source§

fn unlock(&self) -> Result<(), FileLockError>

Source§

impl AdvisoryFileLock for RawFd

Source§

fn lock(&self, file_lock_mode: FileLockMode) -> Result<(), FileLockError>

Source§

fn try_lock(&self, file_lock_mode: FileLockMode) -> Result<(), FileLockError>

Source§

fn unlock(&self) -> Result<(), FileLockError>

Implementors§