gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r21627 - gnunet/src/transport


From: gnunet
Subject: [GNUnet-SVN] r21627 - gnunet/src/transport
Date: Tue, 29 May 2012 14:20:56 +0200

Author: wachs
Date: 2012-05-29 14:20:56 +0200 (Tue, 29 May 2012)
New Revision: 21627

Modified:
   gnunet/src/transport/plugin_transport_http.h
   gnunet/src/transport/plugin_transport_http_server.c
Log:
- no rescheduling when mhd is scheduled to run asap


Modified: gnunet/src/transport/plugin_transport_http.h
===================================================================
--- gnunet/src/transport/plugin_transport_http.h        2012-05-29 12:11:02 UTC 
(rev 21626)
+++ gnunet/src/transport/plugin_transport_http.h        2012-05-29 12:20:56 UTC 
(rev 21627)
@@ -226,6 +226,11 @@
   GNUNET_SCHEDULER_TaskIdentifier server_v4_task;
 
   /**
+   * The IPv4 server is scheduled to run asap
+   */
+  int server_v4_immediately;
+
+  /**
    * MHD IPv6 daemon
    */
   struct MHD_Daemon *server_v6;
@@ -236,6 +241,12 @@
   GNUNET_SCHEDULER_TaskIdentifier server_v6_task;
 
   /**
+   * The IPv6 server is scheduled to run asap
+   */
+
+  int server_v6_immediately;
+
+  /**
    * IPv4 server socket to bind to
    */
   struct sockaddr_in *server_addr_v4;

Modified: gnunet/src/transport/plugin_transport_http_server.c
===================================================================
--- gnunet/src/transport/plugin_transport_http_server.c 2012-05-29 12:11:02 UTC 
(rev 21626)
+++ gnunet/src/transport/plugin_transport_http_server.c 2012-05-29 12:20:56 UTC 
(rev 21627)
@@ -236,6 +236,12 @@
 {
   if ((server == plugin->server_v4) && (plugin->server_v4 != NULL))
   {
+    if (GNUNET_YES == plugin->server_v4_immediately)
+      return; /* No rescheduling, server will run asap */
+
+    if (GNUNET_YES == now)
+      plugin->server_v4_immediately = GNUNET_YES;
+
     if (plugin->server_v4_task != GNUNET_SCHEDULER_NO_TASK)
     {
       GNUNET_SCHEDULER_cancel (plugin->server_v4_task);
@@ -246,6 +252,12 @@
 
   if ((server == plugin->server_v6) && (plugin->server_v6 != NULL))
   {
+    if (GNUNET_YES == plugin->server_v6_immediately)
+      return; /* No rescheduling, server will run asap */
+
+    if (GNUNET_YES == now)
+      plugin->server_v6_immediately = GNUNET_YES;
+
     if (plugin->server_v6_task != GNUNET_SCHEDULER_NO_TASK)
     {
       GNUNET_SCHEDULER_cancel (plugin->server_v6_task);
@@ -917,17 +929,15 @@
   GNUNET_assert (cls != NULL);
 
   plugin->server_v4_task = GNUNET_SCHEDULER_NO_TASK;
-
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
 #if 0
   GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name,
                    "Running IPv4 server\n");
 #endif
+  plugin->server_v4_immediately = GNUNET_NO;
   GNUNET_assert (MHD_YES == MHD_run (plugin->server_v4));
-  if (plugin->server_v4 != NULL)
-    plugin->server_v4_task =
-        server_schedule (plugin, plugin->server_v4, GNUNET_NO);
+  server_reschedule (plugin, plugin->server_v4, GNUNET_NO);
 }
 
 
@@ -943,19 +953,16 @@
   struct Plugin *plugin = cls;
 
   GNUNET_assert (cls != NULL);
-
   plugin->server_v6_task = GNUNET_SCHEDULER_NO_TASK;
-
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
 #if 0
   GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name,
                    "Running IPv6 server\n");
 #endif
+  plugin->server_v6_immediately = GNUNET_NO;
   GNUNET_assert (MHD_YES == MHD_run (plugin->server_v6));
-  if (plugin->server_v6 != NULL)
-    plugin->server_v6_task =
-        server_schedule (plugin, plugin->server_v6, GNUNET_NO);
+  server_reschedule (plugin, plugin->server_v6, GNUNET_NO);
 }
 
 /**




reply via email to

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