+ 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);