No matching definitions.

tur/rwlock

stdlib/rwlock.tur

POSIX read-write lock (pthread_rwlock_t) wrapped as ptr<void>.

Since: Phase T19-C

defn

rwlock-new

(rwlock-new :ptr<void>)

allocate and initialise a new POSIX read-write lock.

An opaque ptr<void> handle to a heap-allocated pthread_rwlock_t.

(let [rw (rwlock-new)] ...)  ; => ptr<void>

Since: Phase T19-C

defn

rwlock-rdlock

(rwlock-rdlock [rw :ptr<void>] :nil)

acquire a shared read lock, blocking until available.

rwrwlock handle returned by rwlock-new
(rwlock-rdlock rw)

Since: Phase T19-C

defn

rwlock-wrlock

(rwlock-wrlock [rw :ptr<void>] :nil)

acquire an exclusive write lock, blocking until available.

rwrwlock handle returned by rwlock-new
(rwlock-wrlock rw)

Since: Phase T19-C

defn

rwlock-try-rdlock

(rwlock-try-rdlock [rw :ptr<void>] :bool)

attempt to acquire a shared read lock without blocking.

rwrwlock handle returned by rwlock-new

true if the read lock was acquired; false if a writer currently holds the lock.

(if (rwlock-try-rdlock rw) ...)  ; => bool

Since: Phase T19-C

defn

rwlock-try-wrlock

(rwlock-try-wrlock [rw :ptr<void>] :bool)

attempt to acquire an exclusive write lock without blocking.

rwrwlock handle returned by rwlock-new

true if the write lock was acquired; false if the lock is currently held.

(if (rwlock-try-wrlock rw) ...)  ; => bool

Since: Phase T19-C

defn

rwlock-unlock

(rwlock-unlock [rw :ptr<void>] :nil)

release a previously acquired read or write lock.

rwrwlock handle returned by rwlock-new
(rwlock-unlock rw)

Since: Phase T19-C

defn

rwlock-free

(rwlock-free [rw :ptr<void>] :nil)

destroy the read-write lock and release its memory.

rwrwlock handle returned by rwlock-new
(rwlock-free rw)

Since: Phase T19-C