summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-console/procctl.cpp6
-rw-r--r--noncore/apps/opie-console/procctl.h5
2 files changed, 10 insertions, 1 deletions
diff --git a/noncore/apps/opie-console/procctl.cpp b/noncore/apps/opie-console/procctl.cpp
index 6839a84..ff6bea8 100644
--- a/noncore/apps/opie-console/procctl.cpp
+++ b/noncore/apps/opie-console/procctl.cpp
@@ -1,22 +1,28 @@
1#include <sys/wait.h> 1#include <sys/wait.h>
2 2
3#include <fcntl.h> 3#include <fcntl.h>
4#include <unistd.h> 4#include <unistd.h>
5 5
6#include "procctl.h" 6#include "procctl.h"
7 7
8ProcContainer *ProcCtl::m_last = 0; 8ProcContainer *ProcCtl::m_last = 0;
9ProcCtl* ProcCtl::m_self = 0;
9 10
10ProcCtl::ProcCtl() { 11ProcCtl::ProcCtl() {
11 signal( SIGCHLD, signal_handler ); 12 signal( SIGCHLD, signal_handler );
12} 13}
13ProcCtl::~ProcCtl() { 14ProcCtl::~ProcCtl() {
14} 15}
16ProcCtl* ProcCtl::self() {
17 if (!m_self ) {
18 m_self = new ProcCtl;
19 }
20}
15void ProcCtl::add(pid_t pi, int fd ) { 21void ProcCtl::add(pid_t pi, int fd ) {
16 ProcContainer * con = new ProcContainer; 22 ProcContainer * con = new ProcContainer;
17 //memset(con, 0, sizeof(con) ); 23 //memset(con, 0, sizeof(con) );
18 con->pid = pi; 24 con->pid = pi;
19 con->fd = fd; 25 con->fd = fd;
20 con->status = 0; 26 con->status = 0;
21 con->prev = m_last; 27 con->prev = m_last;
22 28
diff --git a/noncore/apps/opie-console/procctl.h b/noncore/apps/opie-console/procctl.h
index e2161f3..5e96423 100644
--- a/noncore/apps/opie-console/procctl.h
+++ b/noncore/apps/opie-console/procctl.h
@@ -12,22 +12,25 @@
12struct ProcContainer { 12struct ProcContainer {
13 pid_t pid; 13 pid_t pid;
14 int fd; 14 int fd;
15 int status; 15 int status;
16 ProcContainer* prev; 16 ProcContainer* prev;
17}; 17};
18 18
19class ProcCtl { 19class ProcCtl {
20public: 20private:
21 ProcCtl(); 21 ProcCtl();
22public:
22 ~ProcCtl(); 23 ~ProcCtl();
23 24
25 ProcCtl* self();
24 int status(pid_t)const; 26 int status(pid_t)const;
25 void add( pid_t, int fd ); 27 void add( pid_t, int fd );
26 void remove( pid_t ); 28 void remove( pid_t );
27 void remove( ProcContainer ); 29 void remove( ProcContainer );
28private: 30private:
29 static void signal_handler(int); 31 static void signal_handler(int);
30 static ProcContainer* m_last; 32 static ProcContainer* m_last;
33 static ProcCtl* m_self;
31}; 34};
32 35
33#endif 36#endif