rrd_random() is a wrapper around random() that ensures the PRNG is seeded
[rrdtool.git] / src / rrd_open.c
index 5a908da..f74c6d8 100644 (file)
 #define MEMBLK 8192
 
 #ifdef WIN32
-#      define random() rand()
-#      define srandom(x) srand(x)
-#      define getpid() 0
-
 #define        _LK_UNLCK       0       /* Unlock */
 #define        _LK_LOCK        1       /* Lock */
 #define        _LK_NBLCK       2       /* Non-blocking lock */
 #endif
 #endif
 
-long int  rra_random_row(
-    rra_def_t *);
-
-
 /* Open a database file, return its header and an open filehandle,
  * positioned to the first cdp in the first rra.
  * In the error path of rrd_open, only rrd_free(&rrd) has to be called
@@ -174,6 +166,10 @@ rrd_file_t *rrd_open(
     } else {
         if (rdwr & RRD_READWRITE) {
             flags |= O_RDWR;
+#ifdef HAVE_MMAP 
+            rrd_simple_file->mm_flags = MAP_SHARED; 
+            rrd_simple_file->mm_prot |= PROT_WRITE; 
+#endif 
         }
         if (rdwr & RRD_CREAT) {
             flags |= (O_CREAT | O_TRUNC);
@@ -538,7 +534,7 @@ void rrd_dontneed(
 #if defined DEBUG && DEBUG > 1
     mincore_print(rrd_file, "after");
 #endif
-#endif                          /* without madvise and posix_fadvise ist does not make much sense todo anything */
+#endif                          /* without madvise and posix_fadvise it does not make much sense todo anything */
 }
 
 
@@ -681,22 +677,6 @@ ssize_t rrd_write(
 }
 
 
-/* flush all data pending to be written to FD.  */
-
-void rrd_flush(
-    rrd_file_t *rrd_file)
-{
-#ifndef WIN32
-    rrd_simple_file_t *rrd_simple_file;
-    rrd_simple_file = (rrd_simple_file_t *)rrd_file->pvt;
-    if (fdatasync(rrd_simple_file->fd) != 0) {
-        rrd_set_error("flushing fd %d: %s", rrd_simple_file->fd,
-                      rrd_strerror(errno));
-    }
-#endif
-}
-
-
 /* Initialize RRD header.  */
 
 void rrd_init(
@@ -775,19 +755,5 @@ unsigned long rrd_select_initial_row(
     rra_def_t *rra
     )
 {
-    return rra_random_row(rra);
-}
-
-static int rand_init = 0;
-
-long int rra_random_row(
-    rra_def_t *rra)
-{
-    if (!rand_init) {
-        srandom((unsigned int) time(NULL) + (unsigned int) getpid());
-        rand_init++;
-    }
-
-    return random() % rra->row_cnt;
+    return rrd_random() % rra->row_cnt;
 }
-