## EFlag

EFlag — Simple thread synchronization

## Synopsis

                        EFlag;
    EFlag*              e_flag_new                          (void);
    gboolean            e_flag_is_set                       (EFlag *flag);
    void                e_flag_set                          (EFlag *flag);
    void                e_flag_clear                        (EFlag *flag);
    void                e_flag_wait                         (EFlag *flag);
    gboolean            e_flag_timed_wait                   (EFlag *flag,
                                                             GTimeVal *abs_time);
    void                e_flag_free                         (EFlag *flag);

## Description

An EFlag is a simple thread synchronization mechanism. It implements a thread-safe flag that can be blocked on.

## Details

### EFlag

    typedef struct _EFlag EFlag;

The EFlag struct is an opaque data structure representing a thread-safe flag. It should be accessed only by using the following functions.

### e_flag_new ()

    EFlag*              e_flag_new                          (void);

Returns : |

### e_flag_is_set ()

    gboolean            e_flag_is_set                       (EFlag *flag);

`flag` : |
Returns : |

### e_flag_set ()

    void                e_flag_set                          (EFlag *flag);

`flag` : |

### e_flag_clear ()

    void                e_flag_clear                        (EFlag *flag);

`flag` : |

### e_flag_wait ()

    void                e_flag_wait                         (EFlag *flag);

`flag` : |

### e_flag_timed_wait ()

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

`flag` : |
`abs_time` : |
Returns : |

### e_flag_free ()

    void                e_flag_free                         (EFlag *flag);

`flag` : |