## EFlag

EFlag

## Functions

EFlag * | e_flag_new ()
gboolean | e_flag_is_set ()
void | e_flag_set ()
void | e_flag_clear ()
void | e_flag_wait ()
gboolean | e_flag_wait_until ()
void | e_flag_free ()
gboolean | e_flag_timed_wait ()

## Types and Values

| EFlag

## Description

## Functions

### e_flag_new ()

    EFlag *
    e_flag_new (void);

Creates a new EFlag object. It is initially unset.

#### Returns

a new EFlag

Since 1.12

### e_flag_is_set ()

    gboolean
    e_flag_is_set (EFlag *flag);

Returns the state of `flag` .

#### Parameters

flag | an EFlag |

#### Returns

`TRUE` if `flag` is set

Since 1.12

### e_flag_set ()

    void
    e_flag_set (EFlag *flag);

Sets `flag` . All threads waiting on `flag` are woken up. Threads that call `e_flag_wait()` or `e_flag_wait_until()` once `flag` is set will not block at all.

#### Parameters

flag | an EFlag |

Since 1.12

### e_flag_clear ()

    void
    e_flag_clear (EFlag *flag);

Unsets `flag` . Subsequent calls to `e_flag_wait()` or `e_flag_wait_until()` will block until `flag` is set.

#### Parameters

flag | an EFlag |

Since 1.12

### e_flag_wait ()

    void
    e_flag_wait (EFlag *flag);

Blocks until `flag` is set. If `flag` is already set, the function returns immediately.

#### Parameters

flag | an EFlag |

Since 1.12

### e_flag_wait_until ()

    gboolean
    e_flag_wait_until (EFlag *flag,
                       gint64 end_time);

Blocks until `flag` is set, or until the time specified by `end_time` . If `flag` is already set, the function returns immediately. The return value indicates the state of `flag` after waiting.

To easily calculate `end_time` , a combination of `g_get_monotonic_time()` and G_TIME_SPAN_SECOND macro.

#### Parameters

flag | an EFlag |
end_time | the monotonic time to wait until |

#### Returns

`TRUE` if `flag` is now set

Since 3.8

### e_flag_free ()

    void
    e_flag_free (EFlag *flag);

Destroys `flag` .

#### Parameters

flag | an EFlag |

Since 1.12

### e_flag_timed_wait ()

    gboolean
    e_flag_timed_wait (EFlag *flag,
                       GTimeVal *abs_time);

`e_flag_timed_wait` has been deprecated since version 3.8 and should not be used in newly-written code.

Use `e_flag_wait_until()` instead.

Blocks until `flag` is set, or until the time specified by `abs_time` . If `flag` is already set, the function returns immediately. The return value indicates the state of `flag` after waiting.

If `abs_time` is `NULL`, `e_flag_timed_wait()` acts like `e_flag_wait()`.

To easily calculate `abs_time` , a combination of `g_get_current_time()` and `g_time_val_add()` can be used.

#### Parameters

flag | an EFlag |
abs_time | a GTimeVal, determining the final time |

#### Returns

`TRUE` if `flag` is now set

Since 1.12

## Types and Values

### EFlag

    typedef struct _EFlag EFlag;

Contains only private data that should be read and manipulated using the functions below.

Since 1.12