GLib.bit_trylock
Description: Reference for GLib.bit_trylock

### Function

# GLibbit_trylock

since: 2.24

#### Declaration [src]

    gboolean
    g_bit_trylock (
      volatile gint* address,
      gint lock_bit
    )

#### Description [src]

Sets the indicated `lock_bit` in `address`, returning `TRUE` if successful. If the bit is already set, returns `FALSE` immediately.

Attempting to lock on two different bits within the same integer is not supported.

The value of the bit that is set is (1u << `bit`). If `bit` is not between 0 and 31 then the result is undefined.

This function accesses `address` atomically. All other accesses to `address` must be atomic in order for this function to work reliably. While `address` has a `volatile` qualifier, this is a historical artifact and the argument passed to it should not be `volatile`.

Available since: 2.24

#### Parameters

`address`

  Type: `volatile gint*`

  A pointer to an integer.

  The data is owned by the caller of the function.

`lock_bit`

  Type: `gint`

  A bit value between 0 and 31.

#### Return value

Type: `gboolean`

`TRUE` if the lock was acquired.