+int eFilePushThread::start(const char *filename, int fd_dest)
+{
+ if (m_raw_source.open(filename) < 0)
+ return -1;
+ m_fd_dest = fd_dest;
+ resume();
+ return 0;
+}
+
+void eFilePushThread::installSigUSR1Handler()
+{
+ /* we set the signal to not restart syscalls, so we can detect our signal. */
+ struct sigaction act;
+ act.sa_handler = signal_handler; // no, SIG_IGN doesn't do it. we want to receive the -EINTR
+ act.sa_flags = 0;
+ sigaction(SIGUSR1, &act, 0);
+}
+
+// called from thread before alive is set to 1
+void eFilePushThread::before_set_thread_alive()
+{
+ installSigUSR1Handler();
+}
+