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
4caebd3
..
af91c7b
100644
(file)
--- a/
src/rrd_open.c
+++ b/
src/rrd_open.c
@@
-1,5
+1,5
@@
/*****************************************************************************
/*****************************************************************************
- * RRDtool 1.3
rc9
Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3
.2
Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* rrd_open.c Open an RRD File
*****************************************************************************
*****************************************************************************
* rrd_open.c Open an RRD File
*****************************************************************************
@@
-116,6
+116,9
@@
rrd_file_t *rrd_open(
mm_flags |= MAP_NONBLOCK; /* just populate ptes */
#endif
}
mm_flags |= MAP_NONBLOCK; /* just populate ptes */
#endif
}
+#if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__CYGWIN32__)
+ flags |= O_BINARY;
+#endif
if ((rrd_file->fd = open(file_name, flags, mode)) < 0) {
rrd_set_error("opening '%s': %s", file_name, rrd_strerror(errno));
if ((rrd_file->fd = open(file_name, flags, mode)) < 0) {
rrd_set_error("opening '%s': %s", file_name, rrd_strerror(errno));
@@
-360,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
@@
-429,7
+437,7
@@
off_t rrd_seek(
/* Get current position in rrd_file. */
/* Get current position in rrd_file. */
-
inline
off_t rrd_tell(
+off_t rrd_tell(
rrd_file_t *rrd_file)
{
return rrd_file->pos;
rrd_file_t *rrd_file)
{
return rrd_file->pos;
@@
-439,7
+447,7
@@
inline off_t rrd_tell(
/* Read count bytes into buffer buf, starting at rrd_file->pos.
* Returns the number of bytes read or <0 on error. */
/* Read count bytes into buffer buf, starting at rrd_file->pos.
* Returns the number of bytes read or <0 on error. */
-
inline
ssize_t rrd_read(
+ssize_t rrd_read(
rrd_file_t *rrd_file,
void *buf,
size_t count)
rrd_file_t *rrd_file,
void *buf,
size_t count)
@@
-477,7
+485,7
@@
inline ssize_t rrd_read(
* rrd_file->pos of rrd_file->fd.
* Returns the number of bytes written or <0 on error. */
* rrd_file->pos of rrd_file->fd.
* Returns the number of bytes written or <0 on error. */
-
inline
ssize_t rrd_write(
+ssize_t rrd_write(
rrd_file_t *rrd_file,
const void *buf,
size_t count)
rrd_file_t *rrd_file,
const void *buf,
size_t count)
@@
-502,7
+510,7
@@
inline ssize_t rrd_write(
/* flush all data pending to be written to FD. */
/* flush all data pending to be written to FD. */
-
inline
void rrd_flush(
+void rrd_flush(
rrd_file_t *rrd_file)
{
if (fdatasync(rrd_file->fd) != 0) {
rrd_file_t *rrd_file)
{
if (fdatasync(rrd_file->fd) != 0) {