/*
This file is part of GNUnet.
- (C) 2009, 2010, 2011 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2009, 2010, 2011 GNUnet e.V.
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
You should have received a copy of the GNU General Public License
along with GNUnet; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
*/
/**
/**
* Task run on timeout.
*/
- GNUNET_SCHEDULER_TaskIdentifier timeout_task;
+ struct GNUNET_SCHEDULER_Task * timeout_task;
/**
* Associated value.
/**
* Task doing exponential back-off trying to reconnect.
*/
- GNUNET_SCHEDULER_TaskIdentifier backoff_task;
+ struct GNUNET_SCHEDULER_Task * backoff_task;
/**
* Time for next connect retry.
static void
free_action_item (struct GNUNET_STATISTICS_GetHandle *gh)
{
- if (GNUNET_SCHEDULER_NO_TASK != gh->timeout_task)
+ if (NULL != gh->timeout_task)
{
GNUNET_SCHEDULER_cancel (gh->timeout_task);
- gh->timeout_task = GNUNET_SCHEDULER_NO_TASK;
+ gh->timeout_task = NULL;
}
GNUNET_free_non_null (gh->subsystem);
GNUNET_free_non_null (gh->name);
struct GNUNET_STATISTICS_GetHandle *gn;
unsigned int i;
- if (GNUNET_SCHEDULER_NO_TASK != h->backoff_task)
+ if (NULL != h->backoff_task)
return GNUNET_NO;
if (NULL != h->client)
return GNUNET_YES;
* We've waited long enough, reconnect now.
*
* @param cls the `struct GNUNET_STATISTICS_Handle` to reconnect
- * @param tc scheduler context (unused)
*/
static void
-reconnect_task (void *cls,
- const struct GNUNET_SCHEDULER_TaskContext *tc)
+reconnect_task (void *cls)
{
struct GNUNET_STATISTICS_Handle *h = cls;
- h->backoff_task = GNUNET_SCHEDULER_NO_TASK;
+ h->backoff_task = NULL;
schedule_action (h);
}
* Task used by 'reconnect_later' to shutdown the handle
*
* @param cls the statistics handle
- * @param tc scheduler context
*/
static void
-do_destroy (void *cls,
- const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_destroy (void *cls)
{
struct GNUNET_STATISTICS_Handle *h = cls;
int loss;
struct GNUNET_STATISTICS_GetHandle *gh;
- GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == h->backoff_task);
+ GNUNET_assert (NULL == h->backoff_task);
if (GNUNET_YES == h->do_destroy)
{
/* So we are shutting down and the service is not reachable.
GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
_("Could not save some persistent statistics\n"));
h->do_destroy = GNUNET_NO;
- GNUNET_SCHEDULER_add_continuation (&do_destroy, h,
- GNUNET_SCHEDULER_REASON_PREREQ_DONE);
+ GNUNET_SCHEDULER_add_now (&do_destroy, h);
return;
}
h->backoff_task =
* Task used to destroy the statistics handle.
*
* @param cls the `struct GNUNET_STATISTICS_Handle`
- * @param tc the scheduler context
*/
static void
-destroy_task (void *cls,
- const struct GNUNET_SCHEDULER_TaskContext *tc)
+destroy_task (void *cls)
{
struct GNUNET_STATISTICS_Handle *h = cls;
return;
}
h->do_destroy = GNUNET_NO;
- GNUNET_SCHEDULER_add_continuation (&destroy_task, h,
- GNUNET_SCHEDULER_REASON_PREREQ_DONE);
+ GNUNET_SCHEDULER_add_now (&destroy_task, h);
break;
case GNUNET_MESSAGE_TYPE_STATISTICS_END:
LOG (GNUNET_ERROR_TYPE_DEBUG,
if (NULL == h)
return;
GNUNET_assert (GNUNET_NO == h->do_destroy); // Don't call twice.
- if (GNUNET_SCHEDULER_NO_TASK != h->backoff_task)
+ if (NULL != h->backoff_task)
{
GNUNET_SCHEDULER_cancel (h->backoff_task);
- h->backoff_task = GNUNET_SCHEDULER_NO_TASK;
+ h->backoff_task = NULL;
}
if (sync_first)
{
GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
_("Failed to receive acknowledgement from statistics service, some statistics might have been lost!\n"));
h->do_destroy = GNUNET_NO;
- GNUNET_SCHEDULER_add_continuation (&destroy_task, h,
- GNUNET_SCHEDULER_REASON_PREREQ_DONE);
+ GNUNET_SCHEDULER_add_now (&destroy_task, h);
return 0;
}
hdr.type = htons (GNUNET_MESSAGE_TYPE_TEST);
struct GNUNET_TIME_Relative timeout;
if ( (NULL != h->th) ||
- (GNUNET_SCHEDULER_NO_TASK != h->backoff_task) )
+ (NULL != h->backoff_task) )
return; /* action already pending */
if (GNUNET_YES != try_connect (h))
{
* call the continuation.
*
* @param cls the `struct GNUNET_STATISTICS_GetHandle`
- * @param tc scheduler context
*/
static void
-run_get_timeout (void *cls,
- const struct GNUNET_SCHEDULER_TaskContext *tc)
+run_get_timeout (void *cls)
{
struct GNUNET_STATISTICS_GetHandle *gh = cls;
GNUNET_STATISTICS_Callback cont = gh->cont;
void *cont_cls = gh->cls;
- gh->timeout_task = GNUNET_SCHEDULER_NO_TASK;
+ gh->timeout_task = NULL;
GNUNET_STATISTICS_get_cancel (gh);
cont (cont_cls, GNUNET_SYSERR);
}
ai->timeout_task = GNUNET_SCHEDULER_add_delayed (timeout,
&run_get_timeout,
ai);
- GNUNET_CONTAINER_DLL_insert_tail (handle->action_head, handle->action_tail,
+ GNUNET_CONTAINER_DLL_insert_tail (handle->action_head,
+ handle->action_tail,
ai);
schedule_action (handle);
return ai;
{
if (NULL == gh)
return;
- if (GNUNET_SCHEDULER_NO_TASK != gh->timeout_task)
+ if (NULL != gh->timeout_task)
{
GNUNET_SCHEDULER_cancel (gh->timeout_task);
- gh->timeout_task = GNUNET_SCHEDULER_NO_TASK;
+ gh->timeout_task = NULL;
}
gh->cont = NULL;
if (gh->sh->current == gh)