mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-11 03:46:17 +01:00
GRWLock: Tweak doc to make things a bit clearer
The doc used different phrasing for the same thing, e.g. "if any thread" vs "any other thread." Also make it clear that trying to take a write lock while already having a lock, or trying to take a read lock while having a write lock, is undefined.
This commit is contained in:
parent
47a949d74f
commit
ddb2b5fe54
@ -537,10 +537,13 @@ g_rw_lock_clear (GRWLock *rw_lock)
|
|||||||
* g_rw_lock_writer_lock:
|
* g_rw_lock_writer_lock:
|
||||||
* @rw_lock: a #GRWLock
|
* @rw_lock: a #GRWLock
|
||||||
*
|
*
|
||||||
* Obtain a write lock on @rw_lock. If any thread already holds
|
* Obtain a write lock on @rw_lock. If another thread currently holds
|
||||||
* a read or write lock on @rw_lock, the current thread will block
|
* a read or write lock on @rw_lock, the current thread will block
|
||||||
* until all other threads have dropped their locks on @rw_lock.
|
* until all other threads have dropped their locks on @rw_lock.
|
||||||
*
|
*
|
||||||
|
* Calling g_rw_lock_writer_lock() while the current thread already
|
||||||
|
* owns a read or write lock on @rw_lock leads to undefined behaviour.
|
||||||
|
*
|
||||||
* Since: 2.32
|
* Since: 2.32
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
@ -556,8 +559,9 @@ g_rw_lock_writer_lock (GRWLock *rw_lock)
|
|||||||
* g_rw_lock_writer_trylock:
|
* g_rw_lock_writer_trylock:
|
||||||
* @rw_lock: a #GRWLock
|
* @rw_lock: a #GRWLock
|
||||||
*
|
*
|
||||||
* Tries to obtain a write lock on @rw_lock. If any other thread holds
|
* Tries to obtain a write lock on @rw_lock. If another thread
|
||||||
* a read or write lock on @rw_lock, it immediately returns %FALSE.
|
* currently holds a read or write lock on @rw_lock, it immediately
|
||||||
|
* returns %FALSE.
|
||||||
* Otherwise it locks @rw_lock and returns %TRUE.
|
* Otherwise it locks @rw_lock and returns %TRUE.
|
||||||
*
|
*
|
||||||
* Returns: %TRUE if @rw_lock could be locked
|
* Returns: %TRUE if @rw_lock could be locked
|
||||||
@ -595,13 +599,19 @@ g_rw_lock_writer_unlock (GRWLock *rw_lock)
|
|||||||
* @rw_lock: a #GRWLock
|
* @rw_lock: a #GRWLock
|
||||||
*
|
*
|
||||||
* Obtain a read lock on @rw_lock. If another thread currently holds
|
* Obtain a read lock on @rw_lock. If another thread currently holds
|
||||||
* the write lock on @rw_lock, the current thread will block. If another thread
|
* the write lock on @rw_lock, the current thread will block until the
|
||||||
* does not hold the write lock, but is waiting for it, it is implementation
|
* write lock was (held and) released. If another thread does not hold
|
||||||
* defined whether the reader or writer will block. Read locks can be taken
|
* the write lock, but is waiting for it, it is implementation defined
|
||||||
|
* whether the reader or writer will block. Read locks can be taken
|
||||||
* recursively.
|
* recursively.
|
||||||
*
|
*
|
||||||
* It is implementation-defined how many threads are allowed to
|
* Calling g_rw_lock_reader_lock() while the current thread already
|
||||||
* hold read locks on the same lock simultaneously. If the limit is hit,
|
* owns a write lock leads to undefined behaviour. Read locks however
|
||||||
|
* can be taken recursively, in which case you need to make sure to
|
||||||
|
* call g_rw_lock_reader_unlock() the same amount of times.
|
||||||
|
*
|
||||||
|
* It is implementation-defined how many read locks are allowed to be
|
||||||
|
* held on the same lock simultaneously. If the limit is hit,
|
||||||
* or if a deadlock is detected, a critical warning will be emitted.
|
* or if a deadlock is detected, a critical warning will be emitted.
|
||||||
*
|
*
|
||||||
* Since: 2.32
|
* Since: 2.32
|
||||||
|
Loading…
Reference in New Issue
Block a user