gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r16540 - gnunet-gtk/src/lib


From: gnunet
Subject: [GNUnet-SVN] r16540 - gnunet-gtk/src/lib
Date: Mon, 15 Aug 2011 15:14:29 +0200

Author: grothoff
Date: 2011-08-15 15:14:29 +0200 (Mon, 15 Aug 2011)
New Revision: 16540

Modified:
   gnunet-gtk/src/lib/eventloop.c
Log:
major fix

Modified: gnunet-gtk/src/lib/eventloop.c
===================================================================
--- gnunet-gtk/src/lib/eventloop.c      2011-08-15 13:09:02 UTC (rev 16539)
+++ gnunet-gtk/src/lib/eventloop.c      2011-08-15 13:14:29 UTC (rev 16540)
@@ -195,8 +195,8 @@
  * @param tc scheduler context
  */
 static void
-gnunet_gtk_dispatch_task (void *cls,
-                        const struct GNUNET_SCHEDULER_TaskContext *tc)
+dispatch_gtk_task (void *cls,
+                  const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
   struct GNUNET_GTK_MainLoop *ml = cls;
   g_main_context_dispatch (ml->gmc);
@@ -552,7 +552,6 @@
   poll_result = g_poll (ml->cached_poll_array,
                        fd_counter + need_gfds, 
                        delay);
-
 #if DEBUG_NETWORK
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
              "g_poll returned : %d\n", 
@@ -568,9 +567,10 @@
                                    max_priority,
                                    &ml->cached_poll_array[fd_counter],
                                    need_gfds))
-    GNUNET_SCHEDULER_add_continuation (gnunet_gtk_dispatch_task, ml,
+    GNUNET_SCHEDULER_add_continuation (&dispatch_gtk_task, ml,
                                       GNUNET_SCHEDULER_REASON_STARTUP);
 
+  /* Now map back GNUnet scheduler events ... */
 #if !WINDOWS
   if (NULL != rfds)
     GNUNET_NETWORK_fdset_zero (rfds);
@@ -582,11 +582,14 @@
     {
       int set[3];
 
-      if ((set[0] = FD_ISSET (ml->cached_poll_array[i].fd, &aread)))
+      if ((set[0] = (FD_ISSET (ml->cached_poll_array[i].fd, &aread) &&
+                    (0 != (ml->cached_poll_array[i].revents & (G_IO_IN | 
G_IO_HUP | G_IO_ERR))))))
        GNUNET_NETWORK_fdset_set_native (rfds, ml->cached_poll_array[i].fd);
-      if ((set[1] = FD_ISSET (ml->cached_poll_array[i].fd, &awrite)))
+      if ((set[1] = (FD_ISSET (ml->cached_poll_array[i].fd, &awrite) &&
+                    (0 != (ml->cached_poll_array[i].revents & (G_IO_OUT | 
G_IO_ERR))))))
        GNUNET_NETWORK_fdset_set_native (wfds, ml->cached_poll_array[i].fd);
-      if ((set[2] = FD_ISSET (ml->cached_poll_array[i].fd, &aexcept)))
+      if ((set[2] = (FD_ISSET (ml->cached_poll_array[i].fd, &aexcept) &&
+                    (0 != (ml->cached_poll_array[i].revents & G_IO_ERR)))))
        GNUNET_NETWORK_fdset_set_native (efds, ml->cached_poll_array[i].fd);
       if (set[0] || set[1] || set[2])
        result++;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]