// 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;
{
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 */