47 lines
		
	
	
		
			951 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			951 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// Simple jamsh test demonstrating lifetime resource control and negotiation
 | 
						|
 | 
						|
function hello() {
 | 
						|
  this.act = {
 | 
						|
    init: function () { 
 | 
						|
      log('START '+privilege()); 
 | 
						|
      // negotiate more lifetime (default is 2000)
 | 
						|
      log(negotiate('LIFE',10000))
 | 
						|
      log(negotiate('SCHED',2000))
 | 
						|
      // if negotiation was successful, we can sleep in peace, else..
 | 
						|
    },
 | 
						|
    compute : function () {
 | 
						|
      var start=time();
 | 
						|
      while(true) {
 | 
						|
        if ((time()-start) > 1500) break;
 | 
						|
      };
 | 
						|
      log('Done');
 | 
						|
    },
 | 
						|
    stop: function () { log('STOP'); kill() }
 | 
						|
  }
 | 
						|
  this.trans = {
 | 
						|
    init:"compute",
 | 
						|
    compute:"stop",
 | 
						|
  }
 | 
						|
  this.on = {
 | 
						|
    error: function (e,arg) { log('Error: '+e) },
 | 
						|
  }
 | 
						|
  this.next="init"
 | 
						|
}
 | 
						|
 | 
						|
// default platform settings
 | 
						|
config({
 | 
						|
  IDLETIME:100,
 | 
						|
  LIFETIME:Infinity,
 | 
						|
  TIMESCHED:2000,
 | 
						|
  TIMEPOOL:10000,
 | 
						|
  RUNTIME:3000,
 | 
						|
  LEVEL:2,
 | 
						|
  verbose:3,
 | 
						|
  "log+":'time',
 | 
						|
})
 | 
						|
 | 
						|
compile(hello,{verbose:1})
 | 
						|
start()
 | 
						|
 | 
						|
var id=create(hello,[])
 |