X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/8ef240801bf66e543cdea9df3b32fc09cebcc7e5..c0a2787dc8f4859ff9601a8299ede60142a196b5:/lib/base/filepush.cpp?ds=sidebyside diff --git a/lib/base/filepush.cpp b/lib/base/filepush.cpp index 8d116559..8aed99fa 100644 --- a/lib/base/filepush.cpp +++ b/lib/base/filepush.cpp @@ -54,19 +54,18 @@ void eFilePushThread::thread() // eDebug("wrote %d bytes", w); if (w <= 0) { - if (errno == -EINTR) + if (errno == EINTR) continue; break; // ... we would stop the thread } - /* this should flush all written pages to disk. */ - posix_fadvise(m_fd_dest, dest_pos, w, POSIX_FADV_DONTNEED); - +// posix_fadvise(m_fd_dest, dest_pos, w, POSIX_FADV_DONTNEED); + dest_pos += w; written_since_last_sync += w; - if (written_since_last_sync >= 512*1024) + if (written_since_last_sync >= 2048*1024) { fdatasync(m_fd_dest); written_since_last_sync = 0; @@ -119,7 +118,7 @@ void eFilePushThread::thread() { eDebug("sending PVR commit"); already_empty = 1; - if (::ioctl(m_fd_dest, PVR_COMMIT) == EINTR) + if (::ioctl(m_fd_dest, PVR_COMMIT) < 0 && errno == EINTR) continue; eDebug("commit done"); /* well check again */