use POLLIN instead of POLLPRI for clip buffer empty
[vuplus_dvbapp] / lib / base / filepush.cpp
index ed2a218..3412c84 100644 (file)
@@ -190,8 +190,10 @@ void eFilePushThread::thread()
                        {
                                eDebug("sending PVR commit");
                                
-                               struct pollfd pfd[1] = {m_fd_dest, POLLHUP};
-                               poll(pfd, 1, 10000);
+                               struct pollfd pfd;
+                               pfd.fd = m_fd_dest;
+                               pfd.events = POLLIN;
+                               poll(&pfd, 1, 10000);
                                sleep(5); /* HACK to allow ES buffer to drain */
                                already_empty = 1;
 //                             if (::ioctl(m_fd_dest, PVR_COMMIT) < 0 && errno == EINTR)
@@ -261,15 +263,9 @@ 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
-       while(!sendSignal(SIGUSR1))
-       {
-               eDebug("send SIGUSR1 to thread context");
-               usleep(5000); // wait msek
-       }
-       kill();
+       eDebug("stopping thread."); /* just do it ONCE. it won't help to do this more than once. */
+       sendSignal(SIGUSR1);
+       kill(0);
 }
 
 void eFilePushThread::pause()