gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r21807 - gnunet/src/mesh


From: gnunet
Subject: [GNUnet-SVN] r21807 - gnunet/src/mesh
Date: Fri, 8 Jun 2012 17:02:38 +0200

Author: bartpolot
Date: 2012-06-08 17:02:38 +0200 (Fri, 08 Jun 2012)
New Revision: 21807

Modified:
   gnunet/src/mesh/gnunet-service-mesh_new.c
Log:
- add per-peer core queues

Modified: gnunet/src/mesh/gnunet-service-mesh_new.c
===================================================================
--- gnunet/src/mesh/gnunet-service-mesh_new.c   2012-06-08 14:57:26 UTC (rev 
21806)
+++ gnunet/src/mesh/gnunet-service-mesh_new.c   2012-06-08 15:02:38 UTC (rev 
21807)
@@ -225,6 +225,21 @@
      * Number of tunnels this peers participates in
      */
   unsigned int ntunnels;
+
+   /**
+    * Transmission queue to core DLL head
+    */
+  struct MeshPeerQueue *queue_head;
+
+   /**
+    * Transmission queue to core DLL tail
+    */
+   struct MeshPeerQueue *queue_tail;
+  
+   /**
+    * Handle to for queued transmissions
+    */
+  struct GNUNET_CORE_TransmitHandle *core_transmit;
 };
 
 
@@ -475,12 +490,6 @@
 static struct MeshClient *clients_tail;
 
 /**
- * Transmission queue to core
- */
-struct MeshPeerQueue *queue_head;
-struct MeshPeerQueue *queue_tail;
-
-/**
  * Tunnels known, indexed by MESH_TunnelID (MeshTunnel)
  */
 static struct GNUNET_CONTAINER_MultiHashMap *tunnels;
@@ -507,11 +516,6 @@
 static struct GNUNET_CORE_Handle *core_handle;
 
 /**
- * Handle to for queued transmissions
- */
-struct GNUNET_CORE_TransmitHandle *core_transmit;
-
-/**
  * Handle to use DHT
  */
 static struct GNUNET_DHT_Handle *dht_handle;
@@ -2639,7 +2643,9 @@
     }
     GNUNET_free_non_null (queue->cls);
   }
-  GNUNET_CONTAINER_DLL_remove (queue_head, queue_tail, queue);
+  GNUNET_CONTAINER_DLL_remove (queue->peer->queue_head,
+                               queue->peer->queue_tail,
+                               queue);
   GNUNET_free (queue);
 }
 
@@ -2660,8 +2666,8 @@
     struct MeshPeerQueue *queue;
     size_t data_size;
 
-    core_transmit = NULL;
-    queue = queue_head;
+    peer->core_transmit = NULL;
+    queue = peer->queue_head;
 
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "********* Queue send\n");
 
@@ -2680,7 +2686,7 @@
         struct GNUNET_PeerIdentity id;
 
         GNUNET_PEER_resolve (peer->id, &id);
-        core_transmit =
+        peer->core_transmit =
             GNUNET_CORE_notify_transmit_ready(core_handle,
                                               0,
                                               0,
@@ -2722,19 +2728,19 @@
     queue_destroy(queue, GNUNET_NO);
 
     /* If more data in queue, send next */
-    if (NULL != queue_head)
+    if (NULL != peer->queue_head)
     {
         struct GNUNET_PeerIdentity id;
 
         GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "*********   more data!\n");
         GNUNET_PEER_resolve (peer->id, &id);
-        core_transmit =
+        peer->core_transmit =
             GNUNET_CORE_notify_transmit_ready(core_handle,
                                               0,
                                               0,
                                               GNUNET_TIME_UNIT_FOREVER_REL,
                                               &id,
-                                              queue_head->size,
+                                              peer->queue_head->size,
                                               &queue_send,
                                               peer);
     }
@@ -2761,13 +2767,13 @@
     queue->type = type;
     queue->size = size;
     queue->peer = dst;
-    GNUNET_CONTAINER_DLL_insert_tail (queue_head, queue_tail, queue);
-    if (NULL == core_transmit)
+    GNUNET_CONTAINER_DLL_insert_tail (dst->queue_head, dst->queue_tail, queue);
+    if (NULL == dst->core_transmit)
     {
         struct GNUNET_PeerIdentity id;
 
         GNUNET_PEER_resolve (dst->id, &id);
-        core_transmit =
+        dst->core_transmit =
             GNUNET_CORE_notify_transmit_ready(core_handle,
                                               0,
                                               0,
@@ -4612,7 +4618,7 @@
     GNUNET_break (0);
     return;
   }
-  q = queue_head;
+  q = pi->queue_head;
   while (NULL != q)
   {
       n = q->next;
@@ -4670,7 +4676,7 @@
   struct MeshPeerQueue *q;
   struct MeshPeerQueue *n;
 
-  q = queue_head;
+  q = p->queue_head;
   while (NULL != q)
   {
       n = q->next;




reply via email to

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