[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r10543 - gnunet/src/fs
From: |
gnunet |
Subject: |
[GNUnet-SVN] r10543 - gnunet/src/fs |
Date: |
Thu, 11 Mar 2010 13:21:47 +0100 |
Author: grothoff
Date: 2010-03-11 13:21:47 +0100 (Thu, 11 Mar 2010)
New Revision: 10543
Modified:
gnunet/src/fs/gnunet-search.c
Log:
s
Modified: gnunet/src/fs/gnunet-search.c
===================================================================
--- gnunet/src/fs/gnunet-search.c 2010-03-11 10:38:11 UTC (rev 10542)
+++ gnunet/src/fs/gnunet-search.c 2010-03-11 12:21:47 UTC (rev 10543)
@@ -35,6 +35,8 @@
static const struct GNUNET_CONFIGURATION_Handle *cfg;
+static struct GNUNET_SCHEDULER_Handle *sched;
+
static struct GNUNET_FS_Handle *ctx;
static struct GNUNET_FS_SearchContext *sc;
@@ -62,7 +64,15 @@
return GNUNET_OK;
}
+static void
+clean_task (void *cls,
+ const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+ GNUNET_FS_stop (ctx);
+ ctx = NULL;
+}
+
/**
* Called by FS client to give information about the progress of an
* operation.
@@ -119,10 +129,14 @@
fprintf (stderr,
_("Error searching: %s.\n"),
info->value.search.specifics.error.message);
- GNUNET_FS_search_stop (sc);
+ GNUNET_SCHEDULER_shutdown (sched);
break;
case GNUNET_FS_STATUS_SEARCH_STOPPED:
- GNUNET_FS_stop (ctx);
+ sc = NULL;
+ GNUNET_SCHEDULER_add_continuation (sched,
+ &clean_task,
+ NULL,
+ GNUNET_SCHEDULER_REASON_PREREQ_DONE);
break;
default:
fprintf (stderr,
@@ -134,6 +148,18 @@
}
+static void
+shutdown_task (void *cls,
+ const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+ if (sc != NULL)
+ {
+ GNUNET_FS_search_stop (sc);
+ sc = NULL;
+ }
+}
+
+
/**
* Main function that will be run by the scheduler.
*
@@ -145,7 +171,7 @@
*/
static void
run (void *cls,
- struct GNUNET_SCHEDULER_Handle *sched,
+ struct GNUNET_SCHEDULER_Handle *s,
char *const *args,
const char *cfgfile,
const struct GNUNET_CONFIGURATION_Handle *c)
@@ -153,6 +179,7 @@
struct GNUNET_FS_Uri *uri;
unsigned int argc;
+ sched = s;
argc = 0;
while (NULL != args[argc])
argc++;
@@ -193,9 +220,14 @@
{
fprintf (stderr,
_("Could not start searching.\n"));
+ GNUNET_FS_stop (ctx);
ret = 1;
return;
}
+ GNUNET_SCHEDULER_add_delayed (sched,
+ GNUNET_TIME_UNIT_FOREVER_REL,
+ &shutdown_task,
+ NULL);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r10543 - gnunet/src/fs,
gnunet <=