aboutsummaryrefslogtreecommitdiff
path: root/src/util/bandwidth.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2010-04-06 11:30:35 +0000
committerChristian Grothoff <christian@grothoff.org>2010-04-06 11:30:35 +0000
commitca1869a6d9604fb4c4a55b908a28898bd2b4e9f2 (patch)
treedd9905f865c24267b1bb5b6996f7491dc0402435 /src/util/bandwidth.c
parent6b2588d92b23b0b59a1bc87a739fd7b400c70c9f (diff)
downloadgnunet-ca1869a6d9604fb4c4a55b908a28898bd2b4e9f2.tar.gz
gnunet-ca1869a6d9604fb4c4a55b908a28898bd2b4e9f2.zip
rounding
Diffstat (limited to 'src/util/bandwidth.c')
-rw-r--r--src/util/bandwidth.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/util/bandwidth.c b/src/util/bandwidth.c
index 45f702f41..9ba6bd5ec 100644
--- a/src/util/bandwidth.c
+++ b/src/util/bandwidth.c
@@ -84,10 +84,10 @@ GNUNET_BANDWIDTH_value_get_available_until (struct GNUNET_BANDWIDTH_Value32NBO b
84#if DEBUG_BANDWIDTH 84#if DEBUG_BANDWIDTH
85 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 85 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
86 "Bandwidth has %llu bytes available until deadline in %llums\n", 86 "Bandwidth has %llu bytes available until deadline in %llums\n",
87 (unsigned long long) (b * deadline.value / 1000LL), 87 (unsigned long long) ((b * deadline.value + 500LL) / 1000LL),
88 deadline.value); 88 deadline.value);
89#endif 89#endif
90 return b * deadline.value / 1000LL; 90 return (b * deadline.value + 500LL) / 1000LL;
91} 91}
92 92
93 93
@@ -177,7 +177,7 @@ update_tracker (struct GNUNET_BANDWIDTH_Tracker *av)
177 177
178 now = GNUNET_TIME_absolute_get (); 178 now = GNUNET_TIME_absolute_get ();
179 delta_time = now.value - av->last_update__.value; 179 delta_time = now.value - av->last_update__.value;
180 delta_avail = (delta_time * ((unsigned long long) av->available_bytes_per_s__)) / 1000LL; 180 delta_avail = (delta_time * ((unsigned long long) av->available_bytes_per_s__) + 500LL) / 1000LL;
181 if (av->consumption_since_last_update__ >= delta_avail) 181 if (av->consumption_since_last_update__ >= delta_avail)
182 { 182 {
183 av->consumption_since_last_update__ -= delta_avail; 183 av->consumption_since_last_update__ -= delta_avail;
@@ -186,7 +186,7 @@ update_tracker (struct GNUNET_BANDWIDTH_Tracker *av)
186 else 186 else
187 { 187 {
188 left_bytes = delta_avail - av->consumption_since_last_update__; 188 left_bytes = delta_avail - av->consumption_since_last_update__;
189 avail_per_ms = ((unsigned long long) av->available_bytes_per_s__) / 1000LL; 189 avail_per_ms = ((unsigned long long) av->available_bytes_per_s__ + 500LL) / 1000LL;
190 if (avail_per_ms > 0) 190 if (avail_per_ms > 0)
191 { 191 {
192 left_time_ms = left_bytes / avail_per_ms; 192 left_time_ms = left_bytes / avail_per_ms;
@@ -266,7 +266,7 @@ GNUNET_BANDWIDTH_tracker_consume (struct GNUNET_BANDWIDTH_Tracker *av,
266 } 266 }
267 else 267 else
268 { 268 {
269 av->last_update__.value -= (size * av->available_bytes_per_s__) / 1000LL; 269 av->last_update__.value -= (size * av->available_bytes_per_s__ + 500LL) / 1000LL;
270 update_tracker (av); 270 update_tracker (av);
271 } 271 }
272 return GNUNET_NO; 272 return GNUNET_NO;
@@ -304,7 +304,7 @@ GNUNET_BANDWIDTH_tracker_get_delay (struct GNUNET_BANDWIDTH_Tracker *av,
304 update_tracker (av); 304 update_tracker (av);
305 now = GNUNET_TIME_absolute_get (); 305 now = GNUNET_TIME_absolute_get ();
306 delta_time = now.value - av->last_update__.value; 306 delta_time = now.value - av->last_update__.value;
307 delta_avail = (delta_time * ((unsigned long long) av->available_bytes_per_s__)) / 1000LL; 307 delta_avail = (delta_time * ((unsigned long long) av->available_bytes_per_s__) + 500LL) / 1000LL;
308 if (delta_avail >= size) 308 if (delta_avail >= size)
309 { 309 {
310#if DEBUG_BANDWIDTH 310#if DEBUG_BANDWIDTH