Method

GLibMainContextinvoke

since: 2.28

Declaration

void
g_main_context_invoke (
  GMainContext* context,
  GSourceFunc function,
  gpointer data
)

Description

Invokes a function in such a way that context is owned during the invocation of function.

If context is NULL then the global-default main context — as returned by g_main_context_default() — is used.

If context is owned by the current thread, function is called directly. Otherwise, if context is the thread-default main context of the current thread and g_main_context_acquire() succeeds, then function is called and g_main_context_release() is called afterwards.

In any other case, an idle source is created to call function and that source is attached to context (presumably to be run in another thread). The idle source is attached with G_PRIORITY_DEFAULT priority. If you want a different priority, use g_main_context_invoke_full().

Note that, as with normal idle functions, function should probably return FALSE. If it returns TRUE, it will be continuously run in a loop (and may prevent this call from returning).

Available since: 2.28

This method is not directly available to language bindings.

Parameters

function

Type: GSourceFunc

Function to call.

data

Type: gpointer

Data to pass to function.

The argument can be NULL.
The data is owned by the caller of the function.