diff options
author | Christian Grothoff <christian@grothoff.org> | 2012-05-27 21:46:41 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2012-05-27 21:46:41 +0000 |
commit | 46a63dc665f31fa7d42639ab6adabbdb1af239c8 (patch) | |
tree | 6c3e58a7f57d6d3ee44aa6cd2808b5458d75de4b /src/util/time.c | |
parent | 4848a679018f9e864cd277345191ad8f1000b5ff (diff) | |
download | gnunet-46a63dc665f31fa7d42639ab6adabbdb1af239c8.tar.gz gnunet-46a63dc665f31fa7d42639ab6adabbdb1af239c8.zip |
renaming GNUNET_TIME_relative_get_forever and GNUNET_TIME_absolute_get_forever methods, adding underscore, to make it clear that the respective #defines should be used instead; replacing use of direct function calls with respective macros where applicable; adding additional GNUNET_TIME_relative_get_xxx-functions to avoid calls to GNUNET_TIME_relative_multiply, which turn out to have gotten performance-relevant
Diffstat (limited to 'src/util/time.c')
-rw-r--r-- | src/util/time.c | 75 |
1 files changed, 55 insertions, 20 deletions
diff --git a/src/util/time.c b/src/util/time.c index 3a6f38041..7467b4497 100644 --- a/src/util/time.c +++ b/src/util/time.c | |||
@@ -68,7 +68,7 @@ GNUNET_TIME_absolute_get () | |||
68 | * Return relative time of 0ms. | 68 | * Return relative time of 0ms. |
69 | */ | 69 | */ |
70 | struct GNUNET_TIME_Relative | 70 | struct GNUNET_TIME_Relative |
71 | GNUNET_TIME_relative_get_zero () | 71 | GNUNET_TIME_relative_get_zero_ () |
72 | { | 72 | { |
73 | static struct GNUNET_TIME_Relative zero; | 73 | static struct GNUNET_TIME_Relative zero; |
74 | 74 | ||
@@ -80,28 +80,63 @@ GNUNET_TIME_relative_get_zero () | |||
80 | * Return absolute time of 0ms. | 80 | * Return absolute time of 0ms. |
81 | */ | 81 | */ |
82 | struct GNUNET_TIME_Absolute | 82 | struct GNUNET_TIME_Absolute |
83 | GNUNET_TIME_absolute_get_zero () | 83 | GNUNET_TIME_absolute_get_zero_ () |
84 | { | 84 | { |
85 | static struct GNUNET_TIME_Absolute zero; | 85 | static struct GNUNET_TIME_Absolute zero; |
86 | 86 | ||
87 | return zero; | 87 | return zero; |
88 | } | 88 | } |
89 | 89 | ||
90 | |||
90 | /** | 91 | /** |
91 | * Return relative time of 1ms. | 92 | * Return relative time of 1ms. |
92 | */ | 93 | */ |
93 | struct GNUNET_TIME_Relative | 94 | struct GNUNET_TIME_Relative |
94 | GNUNET_TIME_relative_get_unit () | 95 | GNUNET_TIME_relative_get_unit_ () |
95 | { | 96 | { |
96 | static struct GNUNET_TIME_Relative one = { 1 }; | 97 | static struct GNUNET_TIME_Relative one = { 1 }; |
97 | return one; | 98 | return one; |
98 | } | 99 | } |
99 | 100 | ||
101 | |||
102 | /** | ||
103 | * Return relative time of 1s. | ||
104 | */ | ||
105 | struct GNUNET_TIME_Relative | ||
106 | GNUNET_TIME_relative_get_second_ () | ||
107 | { | ||
108 | static struct GNUNET_TIME_Relative one = { 1000 }; | ||
109 | return one; | ||
110 | } | ||
111 | |||
112 | |||
113 | /** | ||
114 | * Return relative time of 1 minute. | ||
115 | */ | ||
116 | struct GNUNET_TIME_Relative | ||
117 | GNUNET_TIME_relative_get_minute_ () | ||
118 | { | ||
119 | static struct GNUNET_TIME_Relative one = { 60 * 1000 }; | ||
120 | return one; | ||
121 | } | ||
122 | |||
123 | |||
124 | /** | ||
125 | * Return relative time of 1 hour. | ||
126 | */ | ||
127 | struct GNUNET_TIME_Relative | ||
128 | GNUNET_TIME_relative_get_hour_ () | ||
129 | { | ||
130 | static struct GNUNET_TIME_Relative one = { 60 * 60 * 1000 }; | ||
131 | return one; | ||
132 | } | ||
133 | |||
134 | |||
100 | /** | 135 | /** |
101 | * Return "forever". | 136 | * Return "forever". |
102 | */ | 137 | */ |
103 | struct GNUNET_TIME_Relative | 138 | struct GNUNET_TIME_Relative |
104 | GNUNET_TIME_relative_get_forever () | 139 | GNUNET_TIME_relative_get_forever_ () |
105 | { | 140 | { |
106 | static struct GNUNET_TIME_Relative forever = { UINT64_MAX }; | 141 | static struct GNUNET_TIME_Relative forever = { UINT64_MAX }; |
107 | return forever; | 142 | return forever; |
@@ -111,7 +146,7 @@ GNUNET_TIME_relative_get_forever () | |||
111 | * Return "forever". | 146 | * Return "forever". |
112 | */ | 147 | */ |
113 | struct GNUNET_TIME_Absolute | 148 | struct GNUNET_TIME_Absolute |
114 | GNUNET_TIME_absolute_get_forever () | 149 | GNUNET_TIME_absolute_get_forever_ () |
115 | { | 150 | { |
116 | static struct GNUNET_TIME_Absolute forever = { UINT64_MAX }; | 151 | static struct GNUNET_TIME_Absolute forever = { UINT64_MAX }; |
117 | return forever; | 152 | return forever; |
@@ -129,13 +164,13 @@ GNUNET_TIME_relative_to_absolute (struct GNUNET_TIME_Relative rel) | |||
129 | struct GNUNET_TIME_Absolute ret; | 164 | struct GNUNET_TIME_Absolute ret; |
130 | 165 | ||
131 | if (rel.rel_value == UINT64_MAX) | 166 | if (rel.rel_value == UINT64_MAX) |
132 | return GNUNET_TIME_absolute_get_forever (); | 167 | return GNUNET_TIME_UNIT_FOREVER_ABS; |
133 | struct GNUNET_TIME_Absolute now = GNUNET_TIME_absolute_get (); | 168 | struct GNUNET_TIME_Absolute now = GNUNET_TIME_absolute_get (); |
134 | 169 | ||
135 | if (rel.rel_value + now.abs_value < rel.rel_value) | 170 | if (rel.rel_value + now.abs_value < rel.rel_value) |
136 | { | 171 | { |
137 | GNUNET_break (0); /* overflow... */ | 172 | GNUNET_break (0); /* overflow... */ |
138 | return GNUNET_TIME_absolute_get_forever (); | 173 | return GNUNET_TIME_UNIT_FOREVER_ABS; |
139 | } | 174 | } |
140 | ret.abs_value = rel.rel_value + now.abs_value; | 175 | ret.abs_value = rel.rel_value + now.abs_value; |
141 | return ret; | 176 | return ret; |
@@ -215,11 +250,11 @@ GNUNET_TIME_absolute_get_remaining (struct GNUNET_TIME_Absolute future) | |||
215 | struct GNUNET_TIME_Relative ret; | 250 | struct GNUNET_TIME_Relative ret; |
216 | 251 | ||
217 | if (future.abs_value == UINT64_MAX) | 252 | if (future.abs_value == UINT64_MAX) |
218 | return GNUNET_TIME_relative_get_forever (); | 253 | return GNUNET_TIME_UNIT_FOREVER_REL; |
219 | struct GNUNET_TIME_Absolute now = GNUNET_TIME_absolute_get (); | 254 | struct GNUNET_TIME_Absolute now = GNUNET_TIME_absolute_get (); |
220 | 255 | ||
221 | if (now.abs_value > future.abs_value) | 256 | if (now.abs_value > future.abs_value) |
222 | return GNUNET_TIME_relative_get_zero (); | 257 | return GNUNET_TIME_UNIT_ZERO; |
223 | ret.rel_value = future.abs_value - now.abs_value; | 258 | ret.rel_value = future.abs_value - now.abs_value; |
224 | return ret; | 259 | return ret; |
225 | } | 260 | } |
@@ -238,9 +273,9 @@ GNUNET_TIME_absolute_get_difference (struct GNUNET_TIME_Absolute start, | |||
238 | struct GNUNET_TIME_Relative ret; | 273 | struct GNUNET_TIME_Relative ret; |
239 | 274 | ||
240 | if (end.abs_value == UINT64_MAX) | 275 | if (end.abs_value == UINT64_MAX) |
241 | return GNUNET_TIME_relative_get_forever (); | 276 | return GNUNET_TIME_UNIT_FOREVER_REL; |
242 | if (end.abs_value < start.abs_value) | 277 | if (end.abs_value < start.abs_value) |
243 | return GNUNET_TIME_relative_get_zero (); | 278 | return GNUNET_TIME_UNIT_ZERO; |
244 | ret.rel_value = end.abs_value - start.abs_value; | 279 | ret.rel_value = end.abs_value - start.abs_value; |
245 | return ret; | 280 | return ret; |
246 | } | 281 | } |
@@ -260,7 +295,7 @@ GNUNET_TIME_absolute_get_duration (struct GNUNET_TIME_Absolute whence) | |||
260 | now = GNUNET_TIME_absolute_get (); | 295 | now = GNUNET_TIME_absolute_get (); |
261 | GNUNET_assert (whence.abs_value != UINT64_MAX); | 296 | GNUNET_assert (whence.abs_value != UINT64_MAX); |
262 | if (whence.abs_value > now.abs_value) | 297 | if (whence.abs_value > now.abs_value) |
263 | return GNUNET_TIME_relative_get_zero (); | 298 | return GNUNET_TIME_UNIT_ZERO; |
264 | ret.rel_value = now.abs_value - whence.abs_value; | 299 | ret.rel_value = now.abs_value - whence.abs_value; |
265 | return ret; | 300 | return ret; |
266 | } | 301 | } |
@@ -279,11 +314,11 @@ GNUNET_TIME_absolute_add (struct GNUNET_TIME_Absolute start, | |||
279 | struct GNUNET_TIME_Absolute ret; | 314 | struct GNUNET_TIME_Absolute ret; |
280 | 315 | ||
281 | if ((start.abs_value == UINT64_MAX) || (duration.rel_value == UINT64_MAX)) | 316 | if ((start.abs_value == UINT64_MAX) || (duration.rel_value == UINT64_MAX)) |
282 | return GNUNET_TIME_absolute_get_forever (); | 317 | return GNUNET_TIME_UNIT_FOREVER_ABS; |
283 | if (start.abs_value + duration.rel_value < start.abs_value) | 318 | if (start.abs_value + duration.rel_value < start.abs_value) |
284 | { | 319 | { |
285 | GNUNET_break (0); | 320 | GNUNET_break (0); |
286 | return GNUNET_TIME_absolute_get_forever (); | 321 | return GNUNET_TIME_UNIT_FOREVER_ABS; |
287 | } | 322 | } |
288 | ret.abs_value = start.abs_value + duration.rel_value; | 323 | ret.abs_value = start.abs_value + duration.rel_value; |
289 | return ret; | 324 | return ret; |
@@ -325,12 +360,12 @@ GNUNET_TIME_relative_multiply (struct GNUNET_TIME_Relative rel, | |||
325 | struct GNUNET_TIME_Relative ret; | 360 | struct GNUNET_TIME_Relative ret; |
326 | 361 | ||
327 | if (factor == 0) | 362 | if (factor == 0) |
328 | return GNUNET_TIME_relative_get_zero (); | 363 | return GNUNET_TIME_UNIT_ZERO; |
329 | ret.rel_value = rel.rel_value * (unsigned long long) factor; | 364 | ret.rel_value = rel.rel_value * (unsigned long long) factor; |
330 | if (ret.rel_value / factor != rel.rel_value) | 365 | if (ret.rel_value / factor != rel.rel_value) |
331 | { | 366 | { |
332 | GNUNET_break (0); | 367 | GNUNET_break (0); |
333 | return GNUNET_TIME_relative_get_forever (); | 368 | return GNUNET_TIME_UNIT_FOREVER_REL; |
334 | } | 369 | } |
335 | return ret; | 370 | return ret; |
336 | } | 371 | } |
@@ -401,11 +436,11 @@ GNUNET_TIME_relative_add (struct GNUNET_TIME_Relative a1, | |||
401 | struct GNUNET_TIME_Relative ret; | 436 | struct GNUNET_TIME_Relative ret; |
402 | 437 | ||
403 | if ((a1.rel_value == UINT64_MAX) || (a2.rel_value == UINT64_MAX)) | 438 | if ((a1.rel_value == UINT64_MAX) || (a2.rel_value == UINT64_MAX)) |
404 | return GNUNET_TIME_relative_get_forever (); | 439 | return GNUNET_TIME_UNIT_FOREVER_REL; |
405 | if (a1.rel_value + a2.rel_value < a1.rel_value) | 440 | if (a1.rel_value + a2.rel_value < a1.rel_value) |
406 | { | 441 | { |
407 | GNUNET_break (0); | 442 | GNUNET_break (0); |
408 | return GNUNET_TIME_relative_get_forever (); | 443 | return GNUNET_TIME_UNIT_FOREVER_REL; |
409 | } | 444 | } |
410 | ret.rel_value = a1.rel_value + a2.rel_value; | 445 | ret.rel_value = a1.rel_value + a2.rel_value; |
411 | return ret; | 446 | return ret; |
@@ -426,9 +461,9 @@ GNUNET_TIME_relative_subtract (struct GNUNET_TIME_Relative a1, | |||
426 | struct GNUNET_TIME_Relative ret; | 461 | struct GNUNET_TIME_Relative ret; |
427 | 462 | ||
428 | if (a2.rel_value >= a1.rel_value) | 463 | if (a2.rel_value >= a1.rel_value) |
429 | return GNUNET_TIME_relative_get_zero (); | 464 | return GNUNET_TIME_UNIT_ZERO; |
430 | if (a1.rel_value == UINT64_MAX) | 465 | if (a1.rel_value == UINT64_MAX) |
431 | return GNUNET_TIME_relative_get_forever (); | 466 | return GNUNET_TIME_UNIT_FOREVER_REL; |
432 | ret.rel_value = a1.rel_value - a2.rel_value; | 467 | ret.rel_value = a1.rel_value - a2.rel_value; |
433 | return ret; | 468 | return ret; |
434 | } | 469 | } |