gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r11460 - in gnunet: . src/datastore


From: gnunet
Subject: [GNUnet-SVN] r11460 - in gnunet: . src/datastore
Date: Fri, 21 May 2010 09:26:14 +0200

Author: grothoff
Date: 2010-05-21 09:26:13 +0200 (Fri, 21 May 2010)
New Revision: 11460

Modified:
   gnunet/TODO
   gnunet/src/datastore/datastore_api.c
Log:
fix

Modified: gnunet/TODO
===================================================================
--- gnunet/TODO 2010-05-20 15:35:41 UTC (rev 11459)
+++ gnunet/TODO 2010-05-21 07:26:13 UTC (rev 11460)
@@ -12,21 +12,7 @@
     NOTE: corrupted filename in open message
     NOTE: odd directory name in open message
 
-This calls 'receive' while receive is pending!
 
-#0  0x00002b53fc14ef45 in *__GI_raise (sig=<value optimized out>) at 
../nptl/sysdeps/unix/sysv/linux/raise.c:64
-#1  0x00002b53fc151d80 in *__GI_abort () at abort.c:88
-#2  0x00002b53fbcda6e4 in GNUNET_CONNECTION_receive (sock=0x2021740, 
max=65536, timeout=..., receiver=0x2b53fbcd43de <receive_helper>, 
receiver_cls=0x2031880) at connection.c:1180
-#3  0x00002b53fbcd48a5 in GNUNET_CLIENT_receive (sock=0x2031880, 
handler=0x2b53fb6bc695 <process_result_message>, handler_cls=0x208b740, 
timeout=...) at client.c:535
-#4  0x00002b53fb6bcd8b in GNUNET_DATASTORE_get_next (h=0x2034370, more=1) at 
datastore_api.c:1237
-#5  0x00002b53fb6bce5b in GNUNET_DATASTORE_cancel (qe=0x208b740) at 
datastore_api.c:1271
-#6  0x00000000004044c1 in shutdown_task (cls=0x0, tc=0x7fff251a8b00) at 
gnunet-service-fs.c:1376
-#7  0x00002b53fbcf1f50 in run_ready (sched=0x7fff251a8b70) at scheduler.c:514
-#8  0x00002b53fbcf2360 in GNUNET_SCHEDULER_run (task=0x2b53fbcf77e7 
<service_task>, task_cls=0x7fff251a8e20) at scheduler.c:642
-#9  0x00002b53fbcf86da in GNUNET_SERVICE_run (argc=3, argv=0x7fff251a9048, 
serviceName=0x409845 "fs", opt=GNUNET_SERVICE_OPTION_NONE, task=0x40801f <run>, 
task_cls=0x0) at service.c:1404
-#10 0x0000000000408127 in main (argc=3, argv=0x7fff251a9048) at 
gnunet-service-fs.c:3536
-
-
 May 18 10:53:51 transport-8149 WARNING External protocol violation detected at 
plugin_transport_tcp.c:1275.
 
 * TBENCH: [MW]

Modified: gnunet/src/datastore/datastore_api.c
===================================================================
--- gnunet/src/datastore/datastore_api.c        2010-05-20 15:35:41 UTC (rev 
11459)
+++ gnunet/src/datastore/datastore_api.c        2010-05-21 07:26:13 UTC (rev 
11460)
@@ -214,6 +214,11 @@
    */
   unsigned int queue_size;
 
+  /**
+   * Are we currently trying to receive from the service?
+   */
+  int in_receive;
+
 };
 
 
@@ -535,6 +540,7 @@
   GNUNET_SCHEDULER_cancel (h->sched,
                           qe->task);
   qe->task = GNUNET_SCHEDULER_NO_TASK;
+  h->in_receive = GNUNET_YES;
   GNUNET_CLIENT_receive (h->client,
                         qe->response_proc,
                         qe,
@@ -628,6 +634,7 @@
   int32_t status;
   int was_transmitted;
 
+  h->in_receive = GNUNET_NO;
   was_transmitted = qe->was_transmitted;
   if (msg == NULL)
     {      
@@ -1027,6 +1034,7 @@
   const struct DataMessage *dm;
   int was_transmitted;
 
+  h->in_receive = GNUNET_NO;
   if (msg == NULL)
     {
       was_transmitted = qe->was_transmitted;
@@ -1234,6 +1242,7 @@
   GNUNET_assert (&process_result_message == qe->response_proc);
   if (GNUNET_YES == more)
     {     
+      h->in_receive = GNUNET_YES;
       GNUNET_CLIENT_receive (h->client,
                             qe->response_proc,
                             qe,
@@ -1268,7 +1277,8 @@
       if (qe->response_proc == &process_result_message)        
        {
          qe->qc.rc.iter = NULL;    
-         GNUNET_DATASTORE_get_next (h, GNUNET_YES);
+         if (GNUNET_YES != h->in_receive)
+           GNUNET_DATASTORE_get_next (h, GNUNET_YES);
          return;
        }
       reconnect = GNUNET_YES;




reply via email to

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