[glib] Avoid critical error in thread check if source is destroyed



commit 90e1308809805691713edf8f651e80a063f9b66f
Author: Alexander Larsson <alexl redhat com>
Date:   Tue Sep 29 11:25:13 2009 +0200

    Avoid critical error in thread check if source is destroyed
    
    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.

 gio/gsimpleasyncresult.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
---
diff --git a/gio/gsimpleasyncresult.c b/gio/gsimpleasyncresult.c
index e177937..3fa43f0 100644
--- a/gio/gsimpleasyncresult.c
+++ b/gio/gsimpleasyncresult.c
@@ -574,7 +574,7 @@ g_simple_async_result_complete (GSimpleAsyncResult *simple)
 
 #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 ())



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]