|
|
1.1 root 1: #include "master.pri"
2: #include "process.pri"
3: SRCFILE("master.c")
4:
5: char *Master::kbd(char*s) { return PadRcv::kbd(s); }
6: char *Master::help() { return PadRcv::help(); }
7:
8: Master::Master()
9: {
10: trace( "%d.Master()", this );
11: child = 0;
12: core = 0;
13: }
14:
15: Process *Master::makeproc(char* proc, char *stab, char *comment)
16: {
17: Process *p;
18:
19: for( p = child; p; p = p->sibling )
20: if( !p->isdead
21: && eqstr(proc,p->procpath)
22: && eqstr(stab,p->stabpath) ){
23: p->comment = comment?sf("%s", comment):(char *)0;
24: insert(p);
25: return p;
26: }
27: child = domakeproc(proc, stab, comment);
28: child->master = this;
29: insert(child);
30: return child;
31: }
32:
33: void Master::insert(Process *p)
34: {
35: trace( "%d.insert(%d)", this, p ); VOK;
36: IF_LIVE( !p || p->disc()!=U_PROCESS ) return;
37: if( p->isdead ){
38: pad->removeline( (long)p );
39: return;
40: }
41: char *pp = p->procpath;
42: char *sp = p->stabpath;
43: char *ct = p->comment;
44: pad->insert( (long)p, SELECTLINE, (PadRcv*)p, p->carte(),
45: "%s %s %s", pp?pp:"", sp?sp:"", ct?ct:"");
46: }
47:
48: Process *Master::search(char *path)
49: {
50: Process *p;
51: OK(0);
52: for( p = child; p; p = p->sibling )
53: if( eqstr(path, p->procpath) && p->core ) return p;
54: return 0;
55: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.