filepush.cpp: remove no more needed code.. this fixes i.e. timeshift to live transiti...
[vuplus_dvbapp] / lib / base / filepush.cpp
index e99e956..ba30322 100644 (file)
@@ -37,7 +37,6 @@ void eFilePushThread::thread()
        
        size_t written_since_last_sync = 0;
 
-       int already_empty = 0;
        eDebug("FILEPUSH THREAD START");
        
                /* we set the signal to not restart syscalls, so we can detect our signal. */
@@ -186,15 +185,14 @@ void eFilePushThread::thread()
                if (m_buf_end == 0)
                {
                                /* on EOF, try COMMITting once. */
-                       if (m_send_pvr_commit && !already_empty)
+                       if (m_send_pvr_commit)
                        {
                                eDebug("sending PVR commit");
-                               already_empty = 1;
-                               if (::ioctl(m_fd_dest, PVR_COMMIT) < 0 && errno == EINTR)
-                                       continue;
+                               struct pollfd pfd;
+                               pfd.fd = m_fd_dest;
+                               pfd.events = POLLIN;
+                               poll(&pfd, 1, -1);
                                eDebug("commit done");
-                                               /* well check again */
-                               continue;
                        }
                        
                                /* in stream_mode, we are sending EOF events 
@@ -224,7 +222,6 @@ void eFilePushThread::thread()
                        bytes_read += m_buf_end;
                        if (m_sg)
                                current_span_remaining -= m_buf_end;
-                       already_empty = 0;
                }
 //             printf("FILEPUSH: read %d bytes\n", m_buf_end);
        }
@@ -257,10 +254,7 @@ void eFilePushThread::stop()
 
        m_stop = 1;
 
-       // fixmee.. here we need a better solution to ensure
-       // that the thread context take notice of the signal
-       // even when no syscall is in progress
-       eDebug("if enigma hangs here, the filepush thread is non-responsive. FIX THAT DAMN THREAD.");
+       eDebug("stopping thread."); /* just do it ONCE. it won't help to do this more than once. */
        sendSignal(SIGUSR1);
        kill(0);
 }