summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-console/filetransfer.h7
-rw-r--r--noncore/apps/opie-console/procctl.cpp1
-rw-r--r--noncore/apps/opie-console/procctl.h3
3 files changed, 7 insertions, 4 deletions
diff --git a/noncore/apps/opie-console/filetransfer.h b/noncore/apps/opie-console/filetransfer.h
index 0829f16..9cc1e8d 100644
--- a/noncore/apps/opie-console/filetransfer.h
+++ b/noncore/apps/opie-console/filetransfer.h
@@ -22,32 +22,33 @@ public:
};
FileTransfer( Type t, IOLayer* );
~FileTransfer();
void sendFile( const QString& file );
void sendFile( const QFile& );
void cancel();
private slots:
void setupChild();
void slotRead();
void slotProgress( const QStringList& );
+ void slotExec();
private:
/*
* FIXME? What does happen if we've
* two FileTransfers at a time?
* Have a procctl which does listen
* for termination and then send a signal
*/
- static pid_t m_pid;
+ pid_t m_pid;
int m_fd;
int m_prog;
int m_info[2];
int m_comm[2];
+ int m_term[2];
QString m_file;
Type m_type;
QSocketNotifier *m_not;
- static void signal_handler(int);
- static bool terminate;
+ QSocketNotifier* m_proc;
};
#endif
diff --git a/noncore/apps/opie-console/procctl.cpp b/noncore/apps/opie-console/procctl.cpp
index ff6bea8..b0b6846 100644
--- a/noncore/apps/opie-console/procctl.cpp
+++ b/noncore/apps/opie-console/procctl.cpp
@@ -62,24 +62,25 @@ void ProcCtl::remove( ProcContainer con ) {
remove( con.pid );
}
int ProcCtl::status(pid_t pid )const{
ProcContainer *con = m_last;
while (con) {
if (con->pid == pid )
return con->status;
con = con->prev;
}
return -1;
}
void ProcCtl::signal_handler(int) {
+ qWarning("signal handler");
int status;
signal( SIGCHLD, signal_handler );
pid_t pi = waitpid( -1, &status, WNOHANG );
/*
* find the container for pid
*
*/
if ( pi < 0 ) {
return;
}
diff --git a/noncore/apps/opie-console/procctl.h b/noncore/apps/opie-console/procctl.h
index 5e96423..1da7c6d 100644
--- a/noncore/apps/opie-console/procctl.h
+++ b/noncore/apps/opie-console/procctl.h
@@ -13,24 +13,25 @@ struct ProcContainer {
pid_t pid;
int fd;
int status;
ProcContainer* prev;
};
class ProcCtl {
private:
ProcCtl();
public:
~ProcCtl();
- ProcCtl* self();
+ static ProcCtl* self();
int status(pid_t)const;
void add( pid_t, int fd );
void remove( pid_t );
void remove( ProcContainer );
private:
static void signal_handler(int);
static ProcContainer* m_last;
static ProcCtl* m_self;
+
};
#endif