Merge pull request #2618 from ajssmith/amqp1_dev1_branch
[collectd.git] / src / daemon / utils_random.c
index 34cf5b8..7a9ce7b 100644 (file)
@@ -32,7 +32,7 @@
 #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) {
@@ -47,7 +47,7 @@ static void cdrand_seed(void) {
   seed[1] = (unsigned short)(t >> 16);
   seed[2] = (unsigned short)(t >> 32);
 
-  have_seed = 1;
+  have_seed = true;
 }
 
 double cdrand_d(void) {
@@ -58,7 +58,18 @@ double cdrand_d(void) {
   r = erand48(seed);
   pthread_mutex_unlock(&lock);
 
-  return (r);
+  return r;
+}
+
+uint32_t cdrand_u(void) {
+  long r;
+
+  pthread_mutex_lock(&lock);
+  cdrand_seed();
+  r = jrand48(seed);
+  pthread_mutex_unlock(&lock);
+
+  return (uint32_t)r;
 }
 
 long cdrand_range(long min, long max) {
@@ -70,5 +81,5 @@ long cdrand_range(long min, long max) {
   r = (long)(0.5 + (cdrand_d() * range));
   r += min;
 
-  return (r);
+  return r;
 }