structstd.Thread.RwLock.PthreadRwLock[src]

Fields

rwlock: std.c.pthread_rwlock_t = .{}

Functions

FunctiontryLock[src]

pub fn tryLock(rwl: *PthreadRwLock) bool

Parameters

Source Code

Source code
pub fn tryLock(rwl: *PthreadRwLock) bool {
    return std.c.pthread_rwlock_trywrlock(&rwl.rwlock) == .SUCCESS;
}

Functionlock[src]

pub fn lock(rwl: *PthreadRwLock) void

Parameters

Source Code

Source code
pub fn lock(rwl: *PthreadRwLock) void {
    const rc = std.c.pthread_rwlock_wrlock(&rwl.rwlock);
    assert(rc == .SUCCESS);
}

Functionunlock[src]

pub fn unlock(rwl: *PthreadRwLock) void

Parameters

Source Code

Source code
pub fn unlock(rwl: *PthreadRwLock) void {
    const rc = std.c.pthread_rwlock_unlock(&rwl.rwlock);
    assert(rc == .SUCCESS);
}

FunctiontryLockShared[src]

pub fn tryLockShared(rwl: *PthreadRwLock) bool

Parameters

Source Code

Source code
pub fn tryLockShared(rwl: *PthreadRwLock) bool {
    return std.c.pthread_rwlock_tryrdlock(&rwl.rwlock) == .SUCCESS;
}

FunctionlockShared[src]

pub fn lockShared(rwl: *PthreadRwLock) void

Parameters

Source Code

Source code
pub fn lockShared(rwl: *PthreadRwLock) void {
    const rc = std.c.pthread_rwlock_rdlock(&rwl.rwlock);
    assert(rc == .SUCCESS);
}

FunctionunlockShared[src]

pub fn unlockShared(rwl: *PthreadRwLock) void

Parameters

Source Code

Source code
pub fn unlockShared(rwl: *PthreadRwLock) void {
    const rc = std.c.pthread_rwlock_unlock(&rwl.rwlock);
    assert(rc == .SUCCESS);
}

Source Code

Source code
pub const PthreadRwLock = struct {
    rwlock: std.c.pthread_rwlock_t = .{},

    pub fn tryLock(rwl: *PthreadRwLock) bool {
        return std.c.pthread_rwlock_trywrlock(&rwl.rwlock) == .SUCCESS;
    }

    pub fn lock(rwl: *PthreadRwLock) void {
        const rc = std.c.pthread_rwlock_wrlock(&rwl.rwlock);
        assert(rc == .SUCCESS);
    }

    pub fn unlock(rwl: *PthreadRwLock) void {
        const rc = std.c.pthread_rwlock_unlock(&rwl.rwlock);
        assert(rc == .SUCCESS);
    }

    pub fn tryLockShared(rwl: *PthreadRwLock) bool {
        return std.c.pthread_rwlock_tryrdlock(&rwl.rwlock) == .SUCCESS;
    }

    pub fn lockShared(rwl: *PthreadRwLock) void {
        const rc = std.c.pthread_rwlock_rdlock(&rwl.rwlock);
        assert(rc == .SUCCESS);
    }

    pub fn unlockShared(rwl: *PthreadRwLock) void {
        const rc = std.c.pthread_rwlock_unlock(&rwl.rwlock);
        assert(rc == .SUCCESS);
    }
}