projects
/
rrdtool.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
This fixes a couple problems when exiting due to signal:
[rrdtool.git]
/
src
/
rrd_open.c
diff --git
a/src/rrd_open.c
b/src/rrd_open.c
index
51b621f
..
af91c7b
100644
(file)
--- a/
src/rrd_open.c
+++ b/
src/rrd_open.c
@@
-363,14
+363,19
@@
void rrd_dontneed(
rrd->rra_def[i].row_cnt * rrd->stat_head->ds_cnt *
sizeof(rrd_value_t);
}
rrd->rra_def[i].row_cnt * rrd->stat_head->ds_cnt *
sizeof(rrd_value_t);
}
+
+ if (dontneed_start < rrd_file->file_len) {
#ifdef USE_MADVISE
#ifdef USE_MADVISE
- madvise(rrd_file->file_start + dontneed_start,
- rrd_file->file_len - dontneed_start, MADV_DONTNEED);
+
madvise(rrd_file->file_start + dontneed_start,
+
rrd_file->file_len - dontneed_start, MADV_DONTNEED);
#endif
#ifdef HAVE_POSIX_FADVISE
#endif
#ifdef HAVE_POSIX_FADVISE
- posix_fadvise(rrd_file->fd, dontneed_start,
- rrd_file->file_len - dontneed_start, POSIX_FADV_DONTNEED);
+ posix_fadvise(rrd_file->fd, dontneed_start,
+ rrd_file->file_len - dontneed_start,
+ POSIX_FADV_DONTNEED);
#endif
#endif
+ }
+
#if defined DEBUG && DEBUG > 1
mincore_print(rrd_file, "after");
#endif
#if defined DEBUG && DEBUG > 1
mincore_print(rrd_file, "after");
#endif