aboutsummaryrefslogtreecommitdiff
path: root/lib/base/filepush.cpp
diff options
context:
space:
mode:
authorghost <andreas.monzner@multimedia-labs.de>2009-12-09 14:58:12 +0100
committerghost <andreas.monzner@multimedia-labs.de>2009-12-09 14:58:12 +0100
commit2eccebcc6bac4cd66864de0342fe4eede4029537 (patch)
tree7d6f31132afa4e37521d508de9ea63e33465341a /lib/base/filepush.cpp
parentf7b9fc47e6941d316b47b509188d726d6e913f1c (diff)
downloadenigma2-2eccebcc6bac4cd66864de0342fe4eede4029537.tar.gz
enigma2-2eccebcc6bac4cd66864de0342fe4eede4029537.zip
filepush.cpp: no infinite wait until driver EOF.. better we check it more times..
Diffstat (limited to 'lib/base/filepush.cpp')
-rw-r--r--lib/base/filepush.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/base/filepush.cpp b/lib/base/filepush.cpp
index ba30322c..91f24ba0 100644
--- a/lib/base/filepush.cpp
+++ b/lib/base/filepush.cpp
@@ -187,12 +187,21 @@ void eFilePushThread::thread()
/* on EOF, try COMMITting once. */
if (m_send_pvr_commit)
{
- eDebug("sending PVR commit");
struct pollfd pfd;
pfd.fd = m_fd_dest;
pfd.events = POLLIN;
- poll(&pfd, 1, -1);
- eDebug("commit done");
+ switch (poll(&pfd, 1, 250)) // wait for 250ms
+ {
+ case 0:
+ eDebug("wait for driver eof timeout");
+ continue;
+ case 1:
+ eDebug("wait for driver eof ok");
+ break;
+ default:
+ eDebug("wait for driver eof aborted by signal");
+ continue;
+ }
}
/* in stream_mode, we are sending EOF events