plan 9 kernel history: overview | file list | diff list

2002/1218/port/edf.c (diff list | history)

2002/1217/sys/src/9/port/edf.c:213,2202002/1218/sys/src/9/port/edf.c:213,218 (short | long | prev | next)
2002/0328    
	if ((t = qwaitrelease.head) == nil) 
2002/0327    
		return; 
2002/0328    
	DPRINT("edfreleasetimer clock\n"); 
2002/0410    
	if (releasetimer[m->machno].when) 
		timerdel(&releasetimer[m->machno]); 
	releasetimer[m->machno].when = t->r; 
	if (releasetimer[m->machno].when <= now) 
		releasetimer[m->machno].when = now; 
2002/1217/sys/src/9/port/edf.c:356,3632002/1218/sys/src/9/port/edf.c:354,359
2002/0927    
		} 
2002/0315    
		assert(t->runq.n > 0 || (up && up->task == t)); 
		edfpush(t); 
2002/0410    
		if (deadlinetimer[m->machno].when) 
			timerdel(&deadlinetimer[m->machno]); 
		deadlinetimer[m->machno].when = t->d; 
		timeradd(&deadlinetimer[m->machno]); 
2002/0315    
	}else{ 
2002/1217/sys/src/9/port/edf.c:478,4832002/1218/sys/src/9/port/edf.c:474,481
2002/0328    
		now = fastticks(nil); 
 
2002/0315    
		t = up->task; 
2002/1218    
 
		assert(t->state == EdfRunning); 
2002/0315    
		assert(t->scheduled > 0); 
	 
		used = now - t->scheduled; 
2002/1217/sys/src/9/port/edf.c:806,8172002/1218/sys/src/9/port/edf.c:804,812
2002/0410    
		DPRINT("%d edftimer: %T too late\n", m->machno, ticks2time(now-when)); 
2002/0328    
		when = now; 
	} 
2002/0410    
	if (deadlinetimer[m->machno].when){ 
		if(deadlinetimer[m->machno].when == when){ 
2002/0327    
			iunlock(&edflock); 
			return p; 
		} 
2002/0410    
		timerdel(&deadlinetimer[m->machno]); 
2002/1218    
	if(deadlinetimer[m->machno].when == when){ 
		iunlock(&edflock); 
		return p; 
2002/0327    
	} 
2002/0410    
	deadlinetimer[m->machno].when = when; 
	timeradd(&deadlinetimer[m->machno]); 
2002/1217/sys/src/9/port/edf.c:1081,10872002/1218/sys/src/9/port/edf.c:1076,1081
2002/0927    
		t->curcsn->S -= used; 
	when = now + c->S; 
	if (when < deadlinetimer[m->machno].when){ 
		timerdel(&deadlinetimer[m->machno]); 
		deadlinetimer[m->machno].when = when; 
		timeradd(&deadlinetimer[m->machno]); 
	} 
2002/1217/sys/src/9/port/edf.c:1119,11262002/1218/sys/src/9/port/edf.c:1113,1118
2002/0927    
		t->Delta = Infinity; 
	c->S = 0LL;	/* don't allow reuse */ 
2002/1001    
	if(devrt) devrt(t, now, SResrel); 
2002/0927    
	if (deadlinetimer[m->machno].when) 
		timerdel(&deadlinetimer[m->machno]); 
	deadlinetimer[m->machno].when = when; 
	timeradd(&deadlinetimer[m->machno]); 
 


source code copyright © 1990-2005 Lucent Technologies; see license
Plan 9 distribution
comments to russ cox (rsc@swtch.com)