tur/rwlock

stdlib/rwlock.tur
defn

rwlock-new

(rwlock-new :ptr<void>)

allocate and initialise a new POSIX read-write lock.

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

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

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

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

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

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

Since: Phase T19-C