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

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

2002/1218/sys/src/9/port/edf.c:427,4402002/1219/sys/src/9/port/edf.c:427,437 (short | long | prev | next)
2002/0327    
 
2002/0328    
	DPRINT("%d edfreleaseintr\n", m->machno); 
2002/0327    
 
2002/0410    
	timerdel(&releasetimer[m->machno]); 
	releasetimer[m->machno].when = 0; 
2002/0328    
                 
2002/0927    
	if(panicking || active.exiting) 
2002/0327    
		return; 
 
	ilock(&edflock); 
2002/0328    
	now = fastticks(nil); 
2002/1219    
	ilock(&edflock); 
2002/0327    
	while((t = qwaitrelease.head) && t->r <= now){ 
		/* There's something waiting to be released and its time has come */ 
		edfdequeue(&qwaitrelease); 
2002/1218/sys/src/9/port/edf.c:447,4532002/1219/sys/src/9/port/edf.c:444,450
2002/0327    
} 
 
static void 
2002/1001    
edfdeadlineintr(Ureg*, Timer *timer) 
2002/1219    
edfdeadlineintr(Ureg*, Timer *) 
2002/0327    
{ 
2002/0328    
	/* Task reached deadline */ 
 
2002/1218/sys/src/9/port/edf.c:460,4782002/1219/sys/src/9/port/edf.c:457,471
2002/0315    
 
2002/0327    
	DPRINT("%d edfdeadlineintr\n", m->machno); 
 
2002/1001    
	if (timer) 
		timer->when = 0; 
2002/0328    
                 
2002/0927    
	if(panicking || active.exiting) 
2002/0327    
		return; 
 
2002/1219    
	now = fastticks(nil); 
2002/0327    
	ilock(&edflock); 
2002/0315    
	// If up is not set, we're running inside the scheduler 
2002/0927    
	// for non-real-time processes. 
	noted = 0; 
2002/0315    
	if (up && isedf(up)) { 
2002/0328    
		now = fastticks(nil); 
                 
2002/0315    
		t = up->task; 
2002/1218    
 
		assert(t->state == EdfRunning); 
2002/1218/sys/src/9/port/edf.c:1075,10812002/1219/sys/src/9/port/edf.c:1068,1074
2002/0927    
	if (t->curcsn) 
		t->curcsn->S -= used; 
	when = now + c->S; 
	if (when < deadlinetimer[m->machno].when){ 
2002/1219    
	if (deadlinetimer[m->machno].when == 0 || when < deadlinetimer[m->machno].when){ 
2002/0927    
		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)