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

2003/0405/port/taslock.c (diff list | history)

2002/0925/sys/src/9/port/taslock.c:43,482003/0405/sys/src/9/port/taslock.c:43,49 (short | long | prev | next)
1992/0222    
{ 
2002/0403    
	int i; 
	ulong pc; 
2003/0405    
Lock *_l = l; 
1995/1009    
 
1999/0501    
	pc = getcallerpc(&l); 
1995/1009    
 
2002/0925/sys/src/9/port/taslock.c:49,542003/0405/sys/src/9/port/taslock.c:50,57
2002/0403    
	lockstats.locks++; 
	if(up) 
		up->nlocks++;	/* prevent being scheded */ 
2003/0405    
	if(l->key == 0x55555555) 
		panic("lock(1): l %p, key 5*, pc %.lux, %p\n", l, pc, _l); 
1996/0522    
	if(tas(&l->key) == 0){ 
2002/0404    
		if(up) 
			up->lastlock = l; 
2002/0925/sys/src/9/port/taslock.c:57,622003/0405/sys/src/9/port/taslock.c:60,67
1998/0604    
		l->isilock = 0; 
2002/0403    
		return 0; 
1995/1009    
	} 
2003/0405    
	if(l->key == 0x55555555) 
		panic("lock(1a): l %p, key 5*, pc %.lux, %p\n", l, pc, _l); 
2002/0403    
	if(up) 
		up->nlocks--;	/* didn't get the lock, allow scheding */ 
1995/0108    
 
2002/0925/sys/src/9/port/taslock.c:64,772003/0405/sys/src/9/port/taslock.c:69,92
1996/0522    
	for(;;){ 
1999/0811    
		lockstats.inglare++; 
1996/0522    
		i = 0; 
2003/0405    
	if(l->key == 0x55555555) 
		panic("lock(2): l %p, key 5*, pc %.lux, %p\n", l, pc, _l); 
1998/0604    
		while(l->key){ 
2002/0403    
			if(i++ > 100000000){ 
				i = 0; 
2003/0405    
	if(l->key == 0x55555555) 
		panic("lock(3): l %p, key 5*, pc %.lux, %p\n", l, pc, _l); 
2002/0403    
				lockloop(l, pc); 
2003/0405    
	if(l->key == 0x55555555) 
		panic("lock(4): l %p, key 5*, pc %.lux, %p\n", l, pc, _l); 
1996/0522    
			} 
1998/0604    
		} 
2003/0405    
	if(l->key == 0x55555555) 
		panic("lock(5): l %p, key 5*, pc %.lux, %p\n", l, pc, _l); 
2002/0403    
		if(up) 
			up->nlocks++; 
2003/0405    
	if(l->key == 0x55555555) 
		panic("lock(6): l %p, key 5*, pc %.lux, %p\n", l, pc, _l); 
1995/1009    
		if(tas(&l->key) == 0){ 
2002/0403    
			if(up) 
				up->lastlock = l; 
2002/0925/sys/src/9/port/taslock.c:80,852003/0405/sys/src/9/port/taslock.c:95,102
1998/0604    
			l->isilock = 0; 
2002/0403    
			return 1; 
1995/1009    
		} 
2003/0405    
	if(l->key == 0x55555555) 
		panic("lock(7): l %p, key 5*, pc %.lux, %p\n", l, pc, _l); 
2002/0403    
		if(up) 
			up->nlocks--; 
1995/0108    
	} 


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