aboutsummaryrefslogtreecommitdiffstats
path: root/src/reader.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/reader.c')
-rw-r--r--src/reader.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/reader.c b/src/reader.c
index 42c5093f..68b5446d 100644
--- a/src/reader.c
+++ b/src/reader.c
@@ -25,6 +25,10 @@
#include <stdlib.h>
#include <string.h>
+#if defined(HAVE_POSIX_FADVISE) && defined(HAVE_FILENO)
+# include <fcntl.h>
+#endif
+
#include "serd_internal.h"
#include "serd-config.h"
@@ -1485,7 +1489,6 @@ serd_reader_get_handle(const SerdReader* reader)
{
return reader->handle;
}
-
SERD_API
void
serd_reader_add_blank_prefix(SerdReader* reader,
@@ -1518,6 +1521,10 @@ serd_reader_read_file(SerdReader* reader,
fprintf(stderr, "Error opening file %s (%s)\n", path, strerror(errno));
return SERD_ERR_UNKNOWN;
}
+#if defined(HAVE_POSIX_FADVISE) && defined(HAVE_FILENO)
+ posix_fadvise(fileno(fd), 0, 0, POSIX_FADV_SEQUENTIAL);
+#endif
+
SerdStatus ret = serd_reader_read_file_handle(reader, fd, path);
fclose(fd);
return ret;