aboutsummaryrefslogtreecommitdiff
path: root/src/util/time.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2012-05-27 21:46:41 +0000
committerChristian Grothoff <christian@grothoff.org>2012-05-27 21:46:41 +0000
commit46a63dc665f31fa7d42639ab6adabbdb1af239c8 (patch)
tree6c3e58a7f57d6d3ee44aa6cd2808b5458d75de4b /src/util/time.c
parent4848a679018f9e864cd277345191ad8f1000b5ff (diff)
downloadgnunet-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.c75
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 */
70struct GNUNET_TIME_Relative 70struct GNUNET_TIME_Relative
71GNUNET_TIME_relative_get_zero () 71GNUNET_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 */
82struct GNUNET_TIME_Absolute 82struct GNUNET_TIME_Absolute
83GNUNET_TIME_absolute_get_zero () 83GNUNET_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 */
93struct GNUNET_TIME_Relative 94struct GNUNET_TIME_Relative
94GNUNET_TIME_relative_get_unit () 95GNUNET_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 */
105struct GNUNET_TIME_Relative
106GNUNET_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 */
116struct GNUNET_TIME_Relative
117GNUNET_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 */
127struct GNUNET_TIME_Relative
128GNUNET_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 */
103struct GNUNET_TIME_Relative 138struct GNUNET_TIME_Relative
104GNUNET_TIME_relative_get_forever () 139GNUNET_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 */
113struct GNUNET_TIME_Absolute 148struct GNUNET_TIME_Absolute
114GNUNET_TIME_absolute_get_forever () 149GNUNET_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}