Method
GLibMainContextwakeup
Declaration [src]
void
g_main_context_wakeup (
  GMainContext* context
)
Description [src]
If context is currently blocking in g_main_context_iteration()
waiting for a source to become ready, cause it to stop blocking
and return.  Otherwise, cause the next invocation of
g_main_context_iteration() to return without blocking.
This API is useful for low-level control over GMainContext; for
example, integrating it with main loop implementations such as
GMainLoop.
Another related use for this function is when implementing a main loop with a termination condition, computed from multiple threads:
  #define NUM_TASKS 10
  static gint tasks_remaining = NUM_TASKS;  // (atomic)
  ...
 
  while (g_atomic_int_get (&tasks_remaining) != 0)
    g_main_context_iteration (NULL, TRUE);
Then in a thread:
  perform_work();
  if (g_atomic_int_dec_and_test (&tasks_remaining))
    g_main_context_wakeup (NULL);
Parameters
- context
- 
            Type: GMainContextA GMainContext(ifNULL, the global-default main context will be used).The argument can be NULL.