gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r16104 - gnunet/src/fs


From: gnunet
Subject: [GNUnet-SVN] r16104 - gnunet/src/fs
Date: Tue, 19 Jul 2011 11:56:49 +0200

Author: grothoff
Date: 2011-07-19 11:56:49 +0200 (Tue, 19 Jul 2011)
New Revision: 16104

Modified:
   gnunet/src/fs/test_fs_publish_persistence.c
Log:
fix shutdown

Modified: gnunet/src/fs/test_fs_publish_persistence.c
===================================================================
--- gnunet/src/fs/test_fs_publish_persistence.c 2011-07-19 09:56:41 UTC (rev 
16103)
+++ gnunet/src/fs/test_fs_publish_persistence.c 2011-07-19 09:56:49 UTC (rev 
16104)
@@ -74,6 +74,8 @@
 
 static int err;
 
+static GNUNET_SCHEDULER_TaskIdentifier rtask;
+
 static void
 abort_publish_task (void *cls,
                    const struct GNUNET_SCHEDULER_TaskContext *tc)
@@ -86,6 +88,13 @@
   GNUNET_DISK_directory_remove (fn2);
   GNUNET_free (fn2);
   fn2 = NULL;
+  GNUNET_FS_stop (fs);
+  fs = NULL;
+  if (GNUNET_SCHEDULER_NO_TASK != rtask)
+    {
+      GNUNET_SCHEDULER_cancel (rtask);
+      rtask = GNUNET_SCHEDULER_NO_TASK;
+    }
 }
 
 
@@ -98,6 +107,7 @@
 restart_fs_task (void *cls,
                 const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
+  rtask = GNUNET_SCHEDULER_NO_TASK;
   GNUNET_FS_stop (fs);
   fs = GNUNET_FS_start (cfg,
                        "test-fs-publish-persistence",
@@ -125,9 +135,9 @@
     if (prev[i] == ev)
       return;
   prev[off++] = ev;
-  GNUNET_SCHEDULER_add_with_priority (GNUNET_SCHEDULER_PRIORITY_URGENT,
-                                     &restart_fs_task,
-                                     NULL);
+  rtask = GNUNET_SCHEDULER_add_with_priority (GNUNET_SCHEDULER_PRIORITY_URGENT,
+                                             &restart_fs_task,
+                                             NULL);
 }
 
 
@@ -144,7 +154,7 @@
       consider_restart (event->status);
       ret = event->value.publish.cctx;
       printf ("Publish complete,  %llu kbps.\n",
-             (unsigned long long) (FILESIZE * 1000 / 
(1+GNUNET_TIME_absolute_get_duration (start).rel_value) / 1024));
+             (unsigned long long) (FILESIZE * 1000LL / 
(1+GNUNET_TIME_absolute_get_duration (start).rel_value) / 1024));
       if (0 == strcmp ("publish-context-dir", 
                       event->value.publish.cctx))      
        GNUNET_SCHEDULER_add_now (&abort_publish_task,
@@ -169,6 +179,8 @@
     case GNUNET_FS_STATUS_PUBLISH_RESUME:
       if (NULL == publish)
        {
+         GNUNET_assert (GNUNET_YES ==
+                        GNUNET_FS_file_information_is_directory 
(event->value.publish.fi));
          publish = event->value.publish.pc;
          return "publish-context-dir";
        }




reply via email to

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