X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrd_open.c;h=f74c6d8a677ea8c0e3068f271b8d970f61441f81;hb=52fcb05de0a22d5f3edc730319ce2c1766fa6850;hp=5a908daafc49a01eb285f0d205e246c4af8829ef;hpb=dc2409c0e92ace2dfdf73c0c5d7f57baf48b490b;p=rrdtool.git diff --git a/src/rrd_open.c b/src/rrd_open.c index 5a908da..f74c6d8 100644 --- a/src/rrd_open.c +++ b/src/rrd_open.c @@ -16,10 +16,6 @@ #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 */ @@ -78,10 +74,6 @@ #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; } -