[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r16559 - in gnunet-gtk/src: fs lib
From: |
gnunet |
Subject: |
[GNUnet-SVN] r16559 - in gnunet-gtk/src: fs lib |
Date: |
Mon, 15 Aug 2011 17:10:49 +0200 |
Author: grothoff
Date: 2011-08-15 17:10:48 +0200 (Mon, 15 Aug 2011)
New Revision: 16559
Modified:
gnunet-gtk/src/fs/gnunet-fs-gtk.c
gnunet-gtk/src/lib/eventloop.c
Log:
create dummy task to keep scheduler alive
Modified: gnunet-gtk/src/fs/gnunet-fs-gtk.c
===================================================================
--- gnunet-gtk/src/fs/gnunet-fs-gtk.c 2011-08-15 15:03:02 UTC (rev 16558)
+++ gnunet-gtk/src/fs/gnunet-fs-gtk.c 2011-08-15 15:10:48 UTC (rev 16559)
@@ -221,6 +221,7 @@
gtk_widget_show (main_window);
gtk_window_present (GTK_WINDOW (main_window));
}
+
}
Modified: gnunet-gtk/src/lib/eventloop.c
===================================================================
--- gnunet-gtk/src/lib/eventloop.c 2011-08-15 15:03:02 UTC (rev 16558)
+++ gnunet-gtk/src/lib/eventloop.c 2011-08-15 15:10:48 UTC (rev 16559)
@@ -90,6 +90,12 @@
*/
guint cached_poll_array_size;
+ /**
+ * Task we keep around just to keep the event loop running.
+ */
+ GNUNET_SCHEDULER_TaskIdentifier dummy_task;
+
+
#if WINDOWS
/**
* Array to hold pipe handles during a select() call
@@ -148,6 +154,7 @@
};
+
/**
* Get the configuration.
*
@@ -170,6 +177,8 @@
GNUNET_GTK_main_loop_quit (struct GNUNET_GTK_MainLoop *ml)
{
g_main_loop_quit (ml->gml);
+ GNUNET_SCHEDULER_cancel (ml->dummy_task);
+ ml->dummy_task = GNUNET_SCHEDULER_NO_TASK;
}
@@ -221,6 +230,21 @@
}
+/**
+ * Dummy task to keep our scheduler running.
+ */
+static void
+keepalive_task (void *cls,
+ const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+ struct GNUNET_GTK_MainLoop *ml = cls;
+
+ ml->dummy_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL,
+ &keepalive_task,
+ ml);
+}
+
+
#ifndef FD_COPY
#define FD_COPY(s, d) (memcpy ((d), (s), sizeof (fd_set)))
#endif
@@ -806,6 +830,12 @@
/* start the Gtk event loop */
GNUNET_assert (TRUE == g_main_context_acquire (ml->gmc));
GNUNET_SCHEDULER_set_select (&gnunet_gtk_select, ml);
+
+ /* keep Gtk event loop running even if there are no GNUnet tasks */
+ ml->dummy_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL,
+ &keepalive_task,
+ ml);
+
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r16559 - in gnunet-gtk/src: fs lib,
gnunet <=