Merge pull request #2618 from ajssmith/amqp1_dev1_branch
[collectd.git] / src / daemon / utils_random.c
index 0488f91..7a9ce7b 100644 (file)
 
 #include "collectd.h"
 
-#include "utils_time.h"
 #include "utils_random.h"
+#include "utils_time.h"
 
 #include <pthread.h>
 
-
 static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
-static _Bool have_seed = 0;
+static bool have_seed;
 static unsigned short seed[3];
 
-static void cdrand_seed (void)
-{
+static void cdrand_seed(void) {
   cdtime_t t;
 
   if (have_seed)
@@ -45,34 +43,43 @@ static void cdrand_seed (void)
 
   t = cdtime();
 
-  seed[0] = (unsigned short) t;
-  seed[1] = (unsigned short) (t >> 16);
-  seed[2] = (unsigned short) (t >> 32);
+  seed[0] = (unsigned short)t;
+  seed[1] = (unsigned short)(t >> 16);
+  seed[2] = (unsigned short)(t >> 32);
 
-  have_seed = 1;
+  have_seed = true;
 }
 
-double cdrand_d (void)
-{
+double cdrand_d(void) {
   double r;
 
-  pthread_mutex_lock (&lock);
-  cdrand_seed ();
-  r = erand48 (seed);
-  pthread_mutex_unlock (&lock);
+  pthread_mutex_lock(&lock);
+  cdrand_seed();
+  r = erand48(seed);
+  pthread_mutex_unlock(&lock);
+
+  return r;
+}
+
+uint32_t cdrand_u(void) {
+  long r;
+
+  pthread_mutex_lock(&lock);
+  cdrand_seed();
+  r = jrand48(seed);
+  pthread_mutex_unlock(&lock);
 
-  return (r);
+  return (uint32_t)r;
 }
 
-long cdrand_range (long min, long max)
-{
+long cdrand_range(long min, long max) {
   long range;
   long r;
 
   range = 1 + max - min;
 
-  r = (long) (0.5 + (cdrand_d () * range));
+  r = (long)(0.5 + (cdrand_d() * range));
   r += min;
 
-  return (r);
+  return r;
 }