aboutsummaryrefslogtreecommitdiff
path: root/src/util/speedup.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/speedup.c')
-rw-r--r--src/util/speedup.c29
1 files changed, 16 insertions, 13 deletions
diff --git a/src/util/speedup.c b/src/util/speedup.c
index 6dce6a490..97df65c8e 100644
--- a/src/util/speedup.c
+++ b/src/util/speedup.c
@@ -41,18 +41,16 @@ static void
41do_speedup (void *cls) 41do_speedup (void *cls)
42{ 42{
43 static long long current_offset; 43 static long long current_offset;
44 const struct GNUNET_SCHEDULER_TaskContext *tc;
45 44
46 speedup_task = NULL; 45 speedup_task = NULL;
47 tc = GNUNET_SCHEDULER_get_task_context ();
48 if (0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason))
49 return;
50 current_offset += delta.rel_value_us; 46 current_offset += delta.rel_value_us;
51 GNUNET_TIME_set_offset (current_offset); 47 GNUNET_TIME_set_offset (current_offset);
52 LOG (GNUNET_ERROR_TYPE_DEBUG, 48 LOG (GNUNET_ERROR_TYPE_DEBUG,
53 "Speeding up execution time by %s\n", 49 "Speeding up execution time by %s\n",
54 GNUNET_STRINGS_relative_time_to_string (delta, GNUNET_NO)); 50 GNUNET_STRINGS_relative_time_to_string (delta, GNUNET_NO));
55 speedup_task = GNUNET_SCHEDULER_add_delayed (interval, &do_speedup, NULL); 51 speedup_task = GNUNET_SCHEDULER_add_delayed (interval,
52 &do_speedup,
53 NULL);
56} 54}
57 55
58 56
@@ -65,16 +63,22 @@ do_speedup (void *cls)
65int 63int
66GNUNET_SPEEDUP_start_ (const struct GNUNET_CONFIGURATION_Handle *cfg) 64GNUNET_SPEEDUP_start_ (const struct GNUNET_CONFIGURATION_Handle *cfg)
67{ 65{
66 GNUNET_assert (NULL == speedup_task);
68 if (GNUNET_OK != 67 if (GNUNET_OK !=
69 GNUNET_CONFIGURATION_get_value_time (cfg, "testing", 68 GNUNET_CONFIGURATION_get_value_time (cfg,
70 "SPEEDUP_INTERVAL", &interval)) 69 "testing",
70 "SPEEDUP_INTERVAL",
71 &interval))
71 return GNUNET_SYSERR; 72 return GNUNET_SYSERR;
72 if (GNUNET_OK != 73 if (GNUNET_OK !=
73 GNUNET_CONFIGURATION_get_value_time (cfg, "testing", 74 GNUNET_CONFIGURATION_get_value_time (cfg,
74 "SPEEDUP_DELTA", &delta)) 75 "testing",
76 "SPEEDUP_DELTA",
77 &delta))
75 return GNUNET_SYSERR; 78 return GNUNET_SYSERR;
76 79
77 if ((0 == interval.rel_value_us) || (0 == delta.rel_value_us)) 80 if ( (0 == interval.rel_value_us) ||
81 (0 == delta.rel_value_us) )
78 { 82 {
79 LOG (GNUNET_ERROR_TYPE_DEBUG, 83 LOG (GNUNET_ERROR_TYPE_DEBUG,
80 "Speed up disabled\n"); 84 "Speed up disabled\n");
@@ -87,7 +91,8 @@ GNUNET_SPEEDUP_start_ (const struct GNUNET_CONFIGURATION_Handle *cfg)
87 "Speed up executed every %s\n", 91 "Speed up executed every %s\n",
88 GNUNET_STRINGS_relative_time_to_string (interval, GNUNET_NO)); 92 GNUNET_STRINGS_relative_time_to_string (interval, GNUNET_NO));
89 speedup_task = GNUNET_SCHEDULER_add_now_with_lifeness (GNUNET_NO, 93 speedup_task = GNUNET_SCHEDULER_add_now_with_lifeness (GNUNET_NO,
90 &do_speedup, NULL); 94 &do_speedup,
95 NULL);
91 return GNUNET_OK; 96 return GNUNET_OK;
92} 97}
93 98
@@ -109,6 +114,4 @@ GNUNET_SPEEDUP_stop_ ()
109 "Stopped execution speed up\n"); 114 "Stopped execution speed up\n");
110} 115}
111 116
112
113
114/* end of speedup.c */ 117/* end of speedup.c */