EFlag

EFlag

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_wait_until                   (EFlag *flag,
                                                         gint64 end_time);
void                e_flag_free                         (EFlag *flag);

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

Description

Details

EFlag

typedef struct _EFlag EFlag;

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

Since 1.12


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.

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.

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.

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.

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.

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.

flag :

an EFlag

Since 1.12


e_flag_timed_wait ()

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

Warning

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.

flag :

an EFlag

abs_time :

a GTimeVal, determining the final time

Returns :

TRUE if flag is now set

Since 1.12