summaryrefslogtreecommitdiff
path: root/plugins/CopyEngine/Ultracopier/ReadThread.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/CopyEngine/Ultracopier/ReadThread.cpp')
-rw-r--r--plugins/CopyEngine/Ultracopier/ReadThread.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/plugins/CopyEngine/Ultracopier/ReadThread.cpp b/plugins/CopyEngine/Ultracopier/ReadThread.cpp
index e843d9b..7bdb60c 100644
--- a/plugins/CopyEngine/Ultracopier/ReadThread.cpp
+++ b/plugins/CopyEngine/Ultracopier/ReadThread.cpp
@@ -1,5 +1,9 @@
#include "ReadThread.h"
+#ifdef Q_OS_LINUX
+#include <fcntl.h>
+#endif
+
ReadThread::ReadThread()
{
start();
@@ -286,6 +290,14 @@ bool ReadThread::internalOpen(bool resetLastGoodPosition)
return false;
}
pauseMutex.tryAcquire(pauseMutex.available());
+ #ifdef Q_OS_LINUX
+ const int intfd=file.handle();
+ if(intfd!=-1)
+ {
+ posix_fadvise(intfd, 0, 0, POSIX_FADV_WILLNEED);
+ posix_fadvise(intfd, 0, 0, POSIX_FADV_SEQUENTIAL);
+ }
+ #endif
if(stopIt)
{
file.close();