UNISTDX_FS_FILE_MUTEX
enum file_lock_type: int

File lock types.

  • read_lock = LOCK_SH
  • write_lock = LOCK_EX
class sys::file_mutex

File-based mutex.

  • Uses the sanest (but not very portable) flock(2) system call for file locking.
  • Read locks may be acquired by multiple processes, provided that there no write lock on the file.
  • Write lock may be acquired by only one process.

Base classes
Methods
  • open(const char * filename, open_flag flags = open_flag(), mode_type mode = 0) -> void

    Init file descriptor by opening file filename with open flags flags and mode mode.

    bad_call

  • open(const char * filename, mode_type mode) -> void

    Open file filename for mutex with read-write permissions and file mode mode.

  • file_mutex(const char * filename, mode_type mode)

    Construct file mutex with file filename, read-write permissions, file mode mode.

  • file_mutex(const char * filename, open_flag flags, mode_type mode)

    Construct file mutex with file filename, flags flags, file mode mode.

  • file_mutex()
  • try_lock(file_lock_type tp = file_lock_type::write_lock) -> bool

    Try to acquire file lock of type tp.

  • unlock() -> void

    Release file lock.

  • lock(file_lock_type tp = file_lock_type::write_lock) -> void

    Acquire file lock of type tp.