Poco

class FileStreamRWLock

Library: Foundation
Package: Processes
Header: Poco/FileStreamRWLock.h

Description

A reader writer lock on the file region allows multiple concurrent process-readers or one exclusive process-writer.

Inheritance

Direct Base Classes: FileStreamRWLockImpl

All Base Classes: FileStreamRWLockImpl

Member Summary

Member Functions: readLock, tryReadLock, tryWriteLock, unlock, writeLock

Types Aliases

ScopedLock

using ScopedLock = ScopedFStreamRWLock;

ScopedReadLock

using ScopedReadLock = ScopedFStreamReadRWLock;

ScopedWriteLock

using ScopedWriteLock = ScopedFStreamWriteRWLock;

Constructors

FileStreamRWLock

FileStreamRWLock(
    const FileStream & fs,
    Poco::UInt64 offset,
    Poco::UInt64 size
);

Creates the Reader/Writer lock on the file region. offset - from start of the file size - size of the locker region

Destructor

~FileStreamRWLock

~FileStreamRWLock();

Destroys the Reader/Writer lock on the file region.

Member Functions

readLock inline

void readLock();

Acquires a read lock. If another process currently holds a write lock, waits until the write lock is released.

tryReadLock inline

bool tryReadLock();

Tries to acquire a read lock. Immediately returns true if successful, or false if another process currently holds a write lock.

tryWriteLock inline

bool tryWriteLock();

Tries to acquire a write lock on the file region. Immediately returns true if successful, or false if one or more other processes currently hold locks.

unlock inline

void unlock();

Releases the read or write lock.

writeLock inline

void writeLock();

Acquires a write lock on the file region. If one or more other processes currently hold locks, waits until all locks are released.