home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ring.yamanashi.ac.jp/pub/pc/freem/action/
/
action.zip
/
henkyaku1.0.exe
/
henkyaku
/
Program
/
Kernel
/
Util
/
TimeStopper.tonyu
< prev
next >
Wrap
Text File
|
2003-03-16
|
944b
|
42 lines
extends Object;
constructor TimeStopper(owner) {
savePG=$curProcGroup;
savePG.interrupt();
PG=new ProcessGroup(savePG.chars);
PG.setCurrent();
joined=new LightHashtable();
release(owner);
}
function releaseAll(nonKill) {
var i,p;
if (!nonKill) {
for (i=PG.procs.size()-1 ; i>=0 ; i--) {
p=PG.procs.get(i);
if (p && joined.get(p)==null) {
p.aobj.die();
p.kill();
}
}
} else {
for (i=PG.procs.size()-1 ; i>=0 ; i--) {
p=PG.procs.get(i);
if (joined.get(p)==null) {
savePG.procs.add(p);
}
}
}
PG.interrupt();
savePG.setCurrent();
savePG.resumeInterrupt();
}
function release(t) {
var p;
if (!(t is PlainChar)) return;
p=t._pProc;
if (PG.procs.lightIndexOf(p)>=0) return; // a=appear(); release(a); é┼æ¼ôxéQö{ûhÄ~
PG.procs.add(p);
joined.put(p,1);
}