The source can be destroyed by the time we complete the result, and
then the g_source_get_context(current_source) call will cause
a critical error. We check for the source being destroyed and avoid
the check in that case.
This means we miss the right-thread check in this case, but thats
merely a helper, so this is not critical.
#ifndef G_DISABLE_CHECKS
current_source = g_main_current_source ();
- if (current_source)
+ if (current_source && !g_source_is_destroyed (current_source))
{
current_context = g_source_get_context (current_source);
if (current_context == g_main_context_default ())