|
|
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.