mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-27 16:06:16 +01:00
Merge branch 'context-checks' into 'main'
gmain: More explicitly document g_main_context_release() prereqs See merge request GNOME/glib!3314
This commit is contained in:
commit
d3e7b9e17c
21
glib/gmain.c
21
glib/gmain.c
@ -3525,7 +3525,7 @@ g_main_dispatch (GMainContext *context)
|
|||||||
*
|
*
|
||||||
* You must be the owner of a context before you
|
* You must be the owner of a context before you
|
||||||
* can call g_main_context_prepare(), g_main_context_query(),
|
* can call g_main_context_prepare(), g_main_context_query(),
|
||||||
* g_main_context_check(), g_main_context_dispatch().
|
* g_main_context_check(), g_main_context_dispatch(), g_main_context_release().
|
||||||
*
|
*
|
||||||
* Since 2.76 @context can be %NULL to use the global-default
|
* Since 2.76 @context can be %NULL to use the global-default
|
||||||
* main context.
|
* main context.
|
||||||
@ -3583,15 +3583,32 @@ g_main_context_acquire_unlocked (GMainContext *context)
|
|||||||
* with g_main_context_acquire(). If the context was acquired multiple
|
* with g_main_context_acquire(). If the context was acquired multiple
|
||||||
* times, the ownership will be released only when g_main_context_release()
|
* times, the ownership will be released only when g_main_context_release()
|
||||||
* is called as many times as it was acquired.
|
* is called as many times as it was acquired.
|
||||||
|
*
|
||||||
|
* You must have successfully acquired the context with
|
||||||
|
* g_main_context_acquire() before you may call this function.
|
||||||
**/
|
**/
|
||||||
void
|
void
|
||||||
g_main_context_release (GMainContext *context)
|
g_main_context_release (GMainContext *context)
|
||||||
{
|
{
|
||||||
if (context == NULL)
|
if (context == NULL)
|
||||||
context = g_main_context_default ();
|
context = g_main_context_default ();
|
||||||
|
|
||||||
LOCK_CONTEXT (context);
|
LOCK_CONTEXT (context);
|
||||||
|
|
||||||
|
#ifndef G_DISABLE_CHECKS
|
||||||
|
if (G_UNLIKELY (context->owner != G_THREAD_SELF || context->owner_count == 0))
|
||||||
|
{
|
||||||
|
GThread *context_owner = context->owner;
|
||||||
|
guint context_owner_count = context->owner_count;
|
||||||
|
|
||||||
|
UNLOCK_CONTEXT (context);
|
||||||
|
|
||||||
|
g_critical ("g_main_context_release() called on a context (%p, owner %p, "
|
||||||
|
"owner count %u) which is not acquired by the current thread",
|
||||||
|
context, context_owner, context_owner_count);
|
||||||
|
}
|
||||||
|
#endif /* !G_DISABLE_CHECKS */
|
||||||
|
|
||||||
g_main_context_release_unlocked (context);
|
g_main_context_release_unlocked (context);
|
||||||
|
|
||||||
UNLOCK_CONTEXT (context);
|
UNLOCK_CONTEXT (context);
|
||||||
|
Loading…
Reference in New Issue
Block a user