aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2005-10-15 20:05:46 +0000
committerFelix Domke <tmbinc@elitedvb.net>2005-10-15 20:05:46 +0000
commit4cb1a1e0bcadeba2bc44f8ae6610896bd493cfed (patch)
tree38486df65f673f4f95264c9de271df8f7b56e6b8
parent505d05e2f9845ec8a8d28fb27e493f6259d02bde (diff)
downloadenigma2-4cb1a1e0bcadeba2bc44f8ae6610896bd493cfed.tar.gz
enigma2-4cb1a1e0bcadeba2bc44f8ae6610896bd493cfed.zip
try to use posix_fadvise, doesn't seem to reall work, though.
-rw-r--r--lib/base/filepush.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/base/filepush.cpp b/lib/base/filepush.cpp
index 5413f048..5ae2f15d 100644
--- a/lib/base/filepush.cpp
+++ b/lib/base/filepush.cpp
@@ -1,6 +1,7 @@
#include <lib/base/filepush.h>
#include <lib/base/eerror.h>
#include <errno.h>
+#include <fcntl.h>
eFilePushThread::eFilePushThread()
{
@@ -14,6 +15,7 @@ static void signal_handler(int x)
void eFilePushThread::thread()
{
+ off_t dest_pos = 0;
eDebug("FILEPUSH THREAD START");
// this is a race. FIXME.
@@ -23,6 +25,7 @@ void eFilePushThread::thread()
act.sa_flags = 0;
sigaction(SIGUSR1, &act, 0);
+ dest_pos = lseek(m_fd_dest, 0, SEEK_CUR);
/* m_stop must be evaluated after each syscall. */
while (!m_stop)
{
@@ -38,6 +41,10 @@ void eFilePushThread::thread()
eDebug("eFilePushThread *write error* - not yet handled");
// ... we would stop the thread
}
+
+ posix_fadvise(m_fd_dest, dest_pos, w, POSIX_FADV_DONTNEED);
+
+ dest_pos += w;
// printf("FILEPUSH: wrote %d bytes\n", w);
m_buf_start += w;
continue;