never dispatch sources of mixed priority, because while iterating over the
authorHavoc Pennington <hp@redhat.com>
Wed, 13 Feb 2002 22:37:26 +0000 (22:37 +0000)
committerHavoc Pennington <hp@src.gnome.org>
Wed, 13 Feb 2002 22:37:26 +0000 (22:37 +0000)
2002-02-13  Havoc Pennington  <hp@redhat.com>

* glib/gmain.c (g_main_context_check): never dispatch sources of
mixed priority, because while iterating over the dispatch array a
new source with more priority may be added, while a source with
less priority remains in the dispatch array

ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-12
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
glib/gmain.c

index e14bd41a7269921ffcfc5158e8039611e5df761f..34deec9ef82f19fdfdbe7e75d7096b6e57a8a583 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2002-02-13  Havoc Pennington  <hp@redhat.com>
+
+       * glib/gmain.c (g_main_context_check): never dispatch sources of
+       mixed priority, because while iterating over the dispatch array a
+       new source with more priority may be added, while a source with
+       less priority remains in the dispatch array
+
 2002-02-11  Darin Adler  <darin@bentspoon.com>
 
        * glib/gmessages.h: Use "if (expr) { } else" as I meant to in the
index e14bd41a7269921ffcfc5158e8039611e5df761f..34deec9ef82f19fdfdbe7e75d7096b6e57a8a583 100644 (file)
@@ -1,3 +1,10 @@
+2002-02-13  Havoc Pennington  <hp@redhat.com>
+
+       * glib/gmain.c (g_main_context_check): never dispatch sources of
+       mixed priority, because while iterating over the dispatch array a
+       new source with more priority may be added, while a source with
+       less priority remains in the dispatch array
+
 2002-02-11  Darin Adler  <darin@bentspoon.com>
 
        * glib/gmessages.h: Use "if (expr) { } else" as I meant to in the
index e14bd41a7269921ffcfc5158e8039611e5df761f..34deec9ef82f19fdfdbe7e75d7096b6e57a8a583 100644 (file)
@@ -1,3 +1,10 @@
+2002-02-13  Havoc Pennington  <hp@redhat.com>
+
+       * glib/gmain.c (g_main_context_check): never dispatch sources of
+       mixed priority, because while iterating over the dispatch array a
+       new source with more priority may be added, while a source with
+       less priority remains in the dispatch array
+
 2002-02-11  Darin Adler  <darin@bentspoon.com>
 
        * glib/gmessages.h: Use "if (expr) { } else" as I meant to in the
index e14bd41a7269921ffcfc5158e8039611e5df761f..34deec9ef82f19fdfdbe7e75d7096b6e57a8a583 100644 (file)
@@ -1,3 +1,10 @@
+2002-02-13  Havoc Pennington  <hp@redhat.com>
+
+       * glib/gmain.c (g_main_context_check): never dispatch sources of
+       mixed priority, because while iterating over the dispatch array a
+       new source with more priority may be added, while a source with
+       less priority remains in the dispatch array
+
 2002-02-11  Darin Adler  <darin@bentspoon.com>
 
        * glib/gmessages.h: Use "if (expr) { } else" as I meant to in the
index e14bd41a7269921ffcfc5158e8039611e5df761f..34deec9ef82f19fdfdbe7e75d7096b6e57a8a583 100644 (file)
@@ -1,3 +1,10 @@
+2002-02-13  Havoc Pennington  <hp@redhat.com>
+
+       * glib/gmain.c (g_main_context_check): never dispatch sources of
+       mixed priority, because while iterating over the dispatch array a
+       new source with more priority may be added, while a source with
+       less priority remains in the dispatch array
+
 2002-02-11  Darin Adler  <darin@bentspoon.com>
 
        * glib/gmessages.h: Use "if (expr) { } else" as I meant to in the
index e14bd41a7269921ffcfc5158e8039611e5df761f..34deec9ef82f19fdfdbe7e75d7096b6e57a8a583 100644 (file)
@@ -1,3 +1,10 @@
+2002-02-13  Havoc Pennington  <hp@redhat.com>
+
+       * glib/gmain.c (g_main_context_check): never dispatch sources of
+       mixed priority, because while iterating over the dispatch array a
+       new source with more priority may be added, while a source with
+       less priority remains in the dispatch array
+
 2002-02-11  Darin Adler  <darin@bentspoon.com>
 
        * glib/gmessages.h: Use "if (expr) { } else" as I meant to in the
index e14bd41a7269921ffcfc5158e8039611e5df761f..34deec9ef82f19fdfdbe7e75d7096b6e57a8a583 100644 (file)
@@ -1,3 +1,10 @@
+2002-02-13  Havoc Pennington  <hp@redhat.com>
+
+       * glib/gmain.c (g_main_context_check): never dispatch sources of
+       mixed priority, because while iterating over the dispatch array a
+       new source with more priority may be added, while a source with
+       less priority remains in the dispatch array
+
 2002-02-11  Darin Adler  <darin@bentspoon.com>
 
        * glib/gmessages.h: Use "if (expr) { } else" as I meant to in the
index e14bd41a7269921ffcfc5158e8039611e5df761f..34deec9ef82f19fdfdbe7e75d7096b6e57a8a583 100644 (file)
@@ -1,3 +1,10 @@
+2002-02-13  Havoc Pennington  <hp@redhat.com>
+
+       * glib/gmain.c (g_main_context_check): never dispatch sources of
+       mixed priority, because while iterating over the dispatch array a
+       new source with more priority may be added, while a source with
+       less priority remains in the dispatch array
+
 2002-02-11  Darin Adler  <darin@bentspoon.com>
 
        * glib/gmessages.h: Use "if (expr) { } else" as I meant to in the
index 3bbcc064be23ce3fc0b5c9e496c57ab52a5bfc9d..ecc3bd9dd141f6b7df2f1070c5a15dd07bfebd72 100644 (file)
@@ -2128,6 +2128,11 @@ g_main_context_check (GMainContext *context,
          g_ptr_array_add (context->pending_dispatches, source);
 
          n_ready++;
+
+          /* never dispatch sources with less priority than the first
+           * one we choose to dispatch
+           */
+          max_priority = source->priority;
        }
 
     next: