home *** CD-ROM | disk | FTP | other *** search
/ ring.yamanashi.ac.jp/pub/pc/freem/action/ / action.zip / baku100.zip / baku100 / Kernel / WaitProc.tonyu < prev   
Text File  |  2002-03-12  |  774b  |  45 lines

  1. extends Object;
  2.  
  3. constructor WaitProc() {
  4.   ls=new Array();
  5. }
  6.  
  7. function add(o) {
  8.   var i,e,na;i=0;
  9.   while(i<ls.size()) {
  10.     //print(i);
  11.     e=ls.get(i).get(0);
  12.     if (o.nextWake==e.nextWake) {
  13.         ls.get(i).add(o);return;
  14.     } 
  15.     if (o.nextWake<e.nextWake) {
  16.        na=new Array();
  17.        na.add(o);
  18.        ls.insert(i,na);
  19.        return ; 
  20.     }
  21.     i+=1;  
  22.   }
  23.   na=new Array();
  24.   na.add(o);
  25.   ls.add(na);
  26. }
  27.  
  28. function autoWake(ti) {
  29.   var a,b,e,ai;
  30.   if (ls.size()>0) {
  31.     //print ("wakeing.."+ti);
  32.     a=ls.get(0);
  33.     e=a.get(0);
  34.     if (e.nextWake<=ti) {
  35.       ai=a.size();    
  36.       while (ai>0) {
  37.         b=a.get(0);
  38.         b.notify();
  39.         a.delete(0);
  40.         ai-=1;
  41.       }
  42.       ls.delete(0); 
  43.     }  
  44.   }
  45. }