/*
This file is part of GNUnet.
- (C) 2010 Christian Grothoff (and other contributing authors)
+ (C) 2010, 2013 Christian Grothoff (and other contributing authors)
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
- by the Free Software Foundation; either version 2, or (at your
+ by the Free Software Foundation; either version 3, or (at your
option) any later version.
GNUnet is distributed in the hope that it will be useful, but
* @author Christian Grothoff
*/
#include "platform.h"
-#include "gnunet_load_lib.h"
+#include "gnunet_util_lib.h"
-#define DEBUG_LOAD GNUNET_NO
+
+#define LOG(kind,...) GNUNET_log_from (kind, "util", __VA_ARGS__)
/**
* Values we track for load calculations.
struct GNUNET_TIME_Relative delta;
unsigned int n;
- if (load->autodecline.rel_value == GNUNET_TIME_UNIT_FOREVER_REL.rel_value)
+ if (load->autodecline.rel_value_us == GNUNET_TIME_UNIT_FOREVER_REL.rel_value_us)
return;
delta = GNUNET_TIME_absolute_get_duration (load->last_update);
- if (delta.rel_value < load->autodecline.rel_value)
+ if (delta.rel_value_us < load->autodecline.rel_value_us)
return;
- if (load->autodecline.rel_value == 0)
+ if (0 == load->autodecline.rel_value_us)
{
load->runavg_delay = 0.0;
load->load = 0;
return;
}
- n = delta.rel_value / load->autodecline.rel_value;
+ n = delta.rel_value_us / load->autodecline.rel_value_us;
if (n > 16)
{
load->runavg_delay = 0.0;
{
struct GNUNET_LOAD_Value *ret;
- ret = GNUNET_malloc (sizeof (struct GNUNET_LOAD_Value));
+ ret = GNUNET_new (struct GNUNET_LOAD_Value);
ret->autodecline = autodecline;
ret->last_update = GNUNET_TIME_absolute_get ();
return ret;
if (load->cummulative_request_count <= 1)
return;
/* calcuate std dev of latency; we have for n values of "i" that:
- *
+ *
* avg = (sum val_i) / n
* stddev = (sum (val_i - avg)^2) / (n-1)
* = (sum (val_i^2 - 2 avg val_i + avg^2) / (n-1)