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

1995/1009/port/taslock.c (diff list | history)

1995/1009/sys/src/9/port/taslock.c:21,291995/1014/sys/src/9/port/taslock.c:21,29 (short | long | prev | next)
1995/0110    
	for(;;){ 
1995/1009    
		i = 0; 
1995/0110    
		while(l->key) 
1995/1009    
			if(i++ > 10000000) 
				panic("lock loop key 0x%lux pc 0x%lux held by pc 0x%lux\n", 
					l->key, getcallerpc(l), l->pc); 
1995/1014    
			if(i++ > 100000000) 
				panic("lock loop key 0x%lux pc 0x%lux held by pc 0x%lux pl 0x%lux\n", 
					l->key, pc, l->pc, splhi()); 
1995/1009    
		if(tas(&l->key) == 0){ 
			l->pc = pc; 
1995/0108    
			return; 
1995/1009/sys/src/9/port/taslock.c:71,761995/1014/sys/src/9/port/taslock.c:71,77
1992/0222    
unlock(Lock *l) 
{ 
1995/0109    
	l->key = 0; 
1995/1014    
	l->pc = 0; 
1994/0322    
} 
 
void 
1995/1009/sys/src/9/port/taslock.c:80,841995/1014/sys/src/9/port/taslock.c:81,86
1994/0322    
 
	sr = l->sr; 
1995/0110    
	l->key = 0; 
1995/1014    
	l->pc = 0; 
1994/0322    
	splx(sr); 
1992/0222    
} 


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