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

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

1992/0222/sys/src/9/port/taslock.c:1,51992/0321/sys/src/9/port/taslock.c:1,5 (short | long)
Move lib.h to ../port.
rsc Fri Mar 4 12:44:25 2005
1992/0222    
#include "u.h" 
#include "lib.h" 
1992/0321    
#include "../port/lib.h" 
1992/0222    
#include "mem.h" 
#include "dat.h" 
#include "fns.h" 
1992/0321/sys/src/9/port/taslock.c:13,191992/0428/sys/src/9/port/taslock.c:13,22 (short | long)
1992/0222    
	ulong pc; 
 
	pc = getcallerpc(((uchar*)&l) - sizeof(l)); 
                 
1992/0428    
if(l == 0){ 
print("pc= %lux", pc); 
for(;;); 
} 
1992/0222    
	for(i = 0; i < 1000000; i++){ 
    		if (tas(&ll->key) == 0){ 
			if(u) 
1992/0428/sys/src/9/port/taslock.c:5,101992/0602/sys/src/9/port/taslock.c:5,13 (short | long)
1992/0222    
#include "fns.h" 
#include "../port/error.h" 
 
1992/0602    
ulong spinner; 
ulong spinpc; 
 
1992/0222    
void 
lock(Lock *l) 
{ 
1992/0428/sys/src/9/port/taslock.c:13,221992/0602/sys/src/9/port/taslock.c:16,27
1992/0222    
	ulong pc; 
 
	pc = getcallerpc(((uchar*)&l) - sizeof(l)); 
1992/0428    
if(l == 0){ 
print("pc= %lux", pc); 
for(;;); 
} 
1992/0602    
    	if (tas(&ll->key) == 0){ 
		if(u) 
			u->p->hasspin = 1; 
		ll->pc = pc; 
		return; 
	} 
1992/0222    
	for(i = 0; i < 1000000; i++){ 
    		if (tas(&ll->key) == 0){ 
			if(u) 
1992/0428/sys/src/9/port/taslock.c:24,311992/0602/sys/src/9/port/taslock.c:29,36
1992/0222    
			ll->pc = pc; 
			return; 
		} 
		if(u && u->p->state == Running) 
			sched(); 
1992/0602    
spinner++; 
spinpc = pc; 
1992/0222    
	} 
	i = l->key; 
	l->key = 0; 
1992/0602/sys/src/9/port/taslock.c:5,131992/0905/sys/src/9/port/taslock.c:5,10 (short | long)
1992/0222    
#include "fns.h" 
#include "../port/error.h" 
 
1992/0602    
ulong spinner; 
ulong spinpc; 
                 
1992/0222    
void 
lock(Lock *l) 
{ 
1992/0602/sys/src/9/port/taslock.c:16,281992/0905/sys/src/9/port/taslock.c:13,19
1992/0222    
	ulong pc; 
 
	pc = getcallerpc(((uchar*)&l) - sizeof(l)); 
1992/0602    
    	if (tas(&ll->key) == 0){ 
		if(u) 
			u->p->hasspin = 1; 
		ll->pc = pc; 
		return; 
	} 
1992/0222    
	for(i = 0; i < 1000000; i++){ 
1992/0905    
	for(i = 0; i < 10000000; i++){ 
1992/0222    
    		if (tas(&ll->key) == 0){ 
			if(u) 
				u->p->hasspin = 1; 
1992/0602/sys/src/9/port/taslock.c:29,361992/0905/sys/src/9/port/taslock.c:20,25
1992/0222    
			ll->pc = pc; 
			return; 
		} 
1992/0602    
spinner++; 
spinpc = pc; 
1992/0222    
	} 
	i = l->key; 
	l->key = 0; 
1992/0905/sys/src/9/port/taslock.c:13,191992/0912/sys/src/9/port/taslock.c:13,19 (short | long)
1992/0222    
	ulong pc; 
 
	pc = getcallerpc(((uchar*)&l) - sizeof(l)); 
1992/0905    
	for(i = 0; i < 10000000; i++){ 
1992/0912    
	for(i = 0; i < 100000000; i++){ 
1992/0222    
    		if (tas(&ll->key) == 0){ 
			if(u) 
				u->p->hasspin = 1; 
1992/0912/sys/src/9/port/taslock.c:42,471992/0913/sys/src/9/port/taslock.c:42,49 (short | long)
1992/0222    
void 
unlock(Lock *l) 
{ 
1992/0913    
	int s; 
 
1992/0222    
	l->pc = 0; 
	l->key = 0; 
	if(u && u->p) 
1992/0913/sys/src/9/port/taslock.c:8,311992/0914/sys/src/9/port/taslock.c:8,29 (short | long)
1992/0222    
void 
lock(Lock *l) 
{ 
	Lock *ll = l; 
	int i; 
	ulong pc; 
 
	pc = getcallerpc(((uchar*)&l) - sizeof(l)); 
1992/0912    
	for(i = 0; i < 100000000; i++){ 
1992/0222    
    		if (tas(&ll->key) == 0){ 
1992/0914    
 
	for(i = 0; i < 10000000; i++){ 
    		if (tas(&l->key) == 0){ 
1992/0222    
			if(u) 
				u->p->hasspin = 1; 
			ll->pc = pc; 
1992/0914    
			l->pc = pc; 
1992/0222    
			return; 
		} 
	} 
	i = l->key; 
	l->key = 0; 
                 
	panic("lock loop 0x%lux key 0x%lux pc 0x%lux held by pc 0x%lux\n", l, i, 
		pc, l->pc); 
1992/0914    
	panic("lock loop 0x%lux key 0x%lux pc 0x%lux held by pc 0x%lux\n", 
			l->key, i, pc, l->pc); 
1992/0222    
} 
 
int 
1992/0913/sys/src/9/port/taslock.c:42,491992/0914/sys/src/9/port/taslock.c:40,45
1992/0222    
void 
unlock(Lock *l) 
{ 
1992/0913    
	int s; 
                 
1992/0222    
	l->pc = 0; 
	l->key = 0; 
	if(u && u->p) 
1992/0914/sys/src/9/port/taslock.c:15,221993/0501/sys/src/9/port/taslock.c:15,20 (short | long)
1992/0914    
 
	for(i = 0; i < 10000000; i++){ 
    		if (tas(&l->key) == 0){ 
1992/0222    
			if(u) 
				u->p->hasspin = 1; 
1992/0914    
			l->pc = pc; 
1992/0222    
			return; 
		} 
1992/0914/sys/src/9/port/taslock.c:32,391993/0501/sys/src/9/port/taslock.c:30,35
1992/0222    
	if(tas(&l->key)) 
		return 0; 
	l->pc = getcallerpc(((uchar*)&l) - sizeof(l)); 
	if(u && u->p) 
		u->p->hasspin = 1; 
	return 1; 
} 
 
1992/0914/sys/src/9/port/taslock.c:42,471993/0501/sys/src/9/port/taslock.c:38,41
1992/0222    
{ 
	l->pc = 0; 
	l->key = 0; 
	if(u && u->p) 
		u->p->hasspin = 0; 
} 
1993/0501/sys/src/9/port/taslock.c:19,271993/0525/sys/src/9/port/taslock.c:19,26 (short | long)
1992/0222    
			return; 
		} 
	} 
	l->key = 0; 
1992/0914    
	panic("lock loop 0x%lux key 0x%lux pc 0x%lux held by pc 0x%lux\n", 
			l->key, i, pc, l->pc); 
1993/0525    
			i, l->key, pc, l->pc); 
1992/0222    
} 
 
int 
1993/0525/sys/src/9/port/taslock.c:13,191993/0528/sys/src/9/port/taslock.c:13,19 (short | long)
1992/0222    
 
	pc = getcallerpc(((uchar*)&l) - sizeof(l)); 
1992/0914    
 
	for(i = 0; i < 10000000; i++){ 
1993/0528    
	for(i = 0; i < 20000000; i++){ 
1992/0914    
    		if (tas(&l->key) == 0){ 
			l->pc = pc; 
1992/0222    
			return; 
1993/0528/sys/src/9/port/taslock.c:8,261993/0830/sys/src/9/port/taslock.c:8,19 (short | long)
1992/0222    
void 
lock(Lock *l) 
{ 
	int i; 
	ulong pc; 
                 
	pc = getcallerpc(((uchar*)&l) - sizeof(l)); 
1992/0914    
                 
1993/0528    
	for(i = 0; i < 20000000; i++){ 
1992/0914    
    		if (tas(&l->key) == 0){ 
			l->pc = pc; 
1993/0830    
	for(;;){ 
		while(l->key) 
			; 
		if(tas(&l->key) == 0) 
1992/0222    
			return; 
		} 
	} 
1992/0914    
	panic("lock loop 0x%lux key 0x%lux pc 0x%lux held by pc 0x%lux\n", 
1993/0525    
			i, l->key, pc, l->pc); 
1992/0222    
} 
 
int 
1993/0830/sys/src/9/port/taslock.c:8,131993/1204/sys/src/9/port/taslock.c:8,15 (short | long)
1992/0222    
void 
lock(Lock *l) 
{ 
1993/1204    
	if(tas(&l->key) == 0) 
		return; 
1993/0830    
	for(;;){ 
		while(l->key) 
			; 
1993/1204/sys/src/9/port/taslock.c:10,151994/0322/sys/src/9/port/taslock.c:10,16 (short | long)
1992/0222    
{ 
1993/1204    
	if(tas(&l->key) == 0) 
		return; 
1994/0322    
 
1993/0830    
	for(;;){ 
		while(l->key) 
			; 
1993/1204/sys/src/9/port/taslock.c:18,291994/0322/sys/src/9/port/taslock.c:19,45
1992/0222    
	} 
} 
 
1994/0322    
void 
ilock(Lock *l) 
{ 
	l->sr = splhi(); 
	if(tas(&l->key) == 0) 
		return; 
 
	for(;;){ 
		while(l->key) 
			; 
		if(tas(&l->key) == 0) 
			return; 
	} 
} 
 
1992/0222    
int 
canlock(Lock *l) 
{ 
	if(tas(&l->key)) 
		return 0; 
	l->pc = getcallerpc(((uchar*)&l) - sizeof(l)); 
1994/0322    
 
1992/0222    
	return 1; 
} 
 
1993/1204/sys/src/9/port/taslock.c:30,351994/0322/sys/src/9/port/taslock.c:46,60
1992/0222    
void 
unlock(Lock *l) 
{ 
	l->pc = 0; 
	l->key = 0; 
1994/0322    
} 
 
void 
iunlock(Lock *l) 
{ 
	ulong sr; 
 
	sr = l->sr; 
	l->key = 0; 
	splx(sr); 
1992/0222    
} 
1994/0322/sys/src/9/port/taslock.c:22,361994/0323/sys/src/9/port/taslock.c:22,42 (short | long)
1994/0322    
void 
ilock(Lock *l) 
{ 
	l->sr = splhi(); 
	if(tas(&l->key) == 0) 
1994/0323    
	ulong x; 
 
	x = splhi(); 
	if(tas(&l->key) == 0){ 
		l->sr = x; 
1994/0322    
		return; 
1994/0323    
	} 
1994/0322    
 
	for(;;){ 
		while(l->key) 
			; 
		if(tas(&l->key) == 0) 
1994/0323    
		if(tas(&l->key) == 0){ 
			l->sr = x; 
1994/0322    
			return; 
1994/0323    
		} 
1994/0322    
	} 
} 
 
1994/0323/sys/src/9/port/taslock.c:29,351994/0507/sys/src/9/port/taslock.c:29,35 (short | long)
1994/0323    
		l->sr = x; 
1994/0322    
		return; 
1994/0323    
	} 
1994/0322    
                 
1994/0507    
/* print("ilock loop %lux\n", getcallerpc(0)); */ 
1994/0322    
	for(;;){ 
		while(l->key) 
			; 
1994/0507/sys/src/9/port/taslock.c:29,351994/0516/sys/src/9/port/taslock.c:29,35 (short | long)
1994/0323    
		l->sr = x; 
1994/0322    
		return; 
1994/0323    
	} 
1994/0507    
/* print("ilock loop %lux\n", getcallerpc(0)); */ 
1994/0516    
 print("ilock loop %lux\n", getcallerpc(0)); 
1994/0322    
	for(;;){ 
		while(l->key) 
			; 
1994/0516/sys/src/9/port/taslock.c:29,351994/0525/sys/src/9/port/taslock.c:29,35 (short | long)
1994/0323    
		l->sr = x; 
1994/0322    
		return; 
1994/0323    
	} 
1994/0516    
 print("ilock loop %lux\n", getcallerpc(0)); 
1994/0525    
 
1994/0322    
	for(;;){ 
		while(l->key) 
			; 
1994/0525/sys/src/9/port/taslock.c:8,191994/0805/sys/src/9/port/taslock.c:8,26 (short | long)
1992/0222    
void 
lock(Lock *l) 
{ 
1994/0805    
	int loop; 
 
1993/1204    
	if(tas(&l->key) == 0) 
		return; 
1994/0322    
 
1994/0805    
	loop = 50000000; 
1993/0830    
	for(;;){ 
		while(l->key) 
			; 
1994/0805    
		while(l->key) { 
			if(loop-- <= 0) { 
				dumpstack(); 
				panic("lock loop: lock %lux\n", l); 
			} 
		} 
1993/0830    
		if(tas(&l->key) == 0) 
1992/0222    
			return; 
	} 
1994/0805/sys/src/9/port/taslock.c:8,261994/0808/sys/src/9/port/taslock.c:8,19 (short | long)
1992/0222    
void 
lock(Lock *l) 
{ 
1994/0805    
	int loop; 
                 
1993/1204    
	if(tas(&l->key) == 0) 
		return; 
1994/0322    
 
1994/0805    
	loop = 50000000; 
1993/0830    
	for(;;){ 
1994/0805    
		while(l->key) { 
			if(loop-- <= 0) { 
				dumpstack(); 
				panic("lock loop: lock %lux\n", l); 
			} 
		} 
1994/0808    
		while(l->key) 
			; 
1993/0830    
		if(tas(&l->key) == 0) 
1992/0222    
			return; 
	} 
1994/0808/sys/src/9/port/taslock.c:8,161995/0108/sys/src/9/port/taslock.c:8,35 (short | long)
1992/0222    
void 
lock(Lock *l) 
{ 
1995/0108    
	int n; 
 
	if(up) { 
		n = up->inlock+2; 
		up->inlock = n; 
		if(tas(&l->key) == 0) 
			return; 
 
		for(;;){ 
			while(l->key) 
				if(conf.nproc == 1) { 
					up->yield = 1; 
					sched(); 
				} 
			up->inlock = n; 
			if(tas(&l->key) == 0) 
				return; 
		} 
	} 
 
1993/1204    
	if(tas(&l->key) == 0) 
		return; 
1994/0322    
                 
1993/0830    
	for(;;){ 
1994/0808    
		while(l->key) 
			; 
1994/0808/sys/src/9/port/taslock.c:52,581995/0108/sys/src/9/port/taslock.c:71,85
1992/0222    
void 
unlock(Lock *l) 
{ 
1995/0108    
	int n; 
 
1992/0222    
	l->key = 0; 
1995/0108    
	if(up) { 
		n = up->inlock-2; 
		if(n < 0) 
			n = 0; 
		up->inlock = n; 
	} 
1994/0322    
} 
 
void 
1995/0108/sys/src/9/port/taslock.c:38,701995/0109/sys/src/9/port/taslock.c:38,60 (short | long)
1992/0222    
	} 
} 
 
1994/0322    
void 
ilock(Lock *l) 
1995/0109    
int 
canlock(Lock *l) 
1994/0322    
{ 
1994/0323    
	ulong x; 
1995/0109    
	int n; 
1994/0323    
 
	x = splhi(); 
	if(tas(&l->key) == 0){ 
		l->sr = x; 
1994/0322    
		return; 
1994/0323    
	} 
1994/0525    
                 
1994/0322    
	for(;;){ 
		while(l->key) 
			; 
1994/0323    
		if(tas(&l->key) == 0){ 
			l->sr = x; 
1994/0322    
			return; 
1995/0109    
	if(up) { 
		n = up->inlock; 
		up->inlock = n+2; 
		if(tas(&l->key)) { 
			up->inlock = n; 
			return 0; 
1994/0323    
		} 
1995/0109    
		return 1; 
1994/0322    
	} 
} 
 
1992/0222    
int 
canlock(Lock *l) 
{ 
	if(tas(&l->key)) 
		return 0; 
1994/0322    
                 
1992/0222    
	return 1; 
} 
 
1995/0108/sys/src/9/port/taslock.c:73,791995/0109/sys/src/9/port/taslock.c:63,68
1992/0222    
{ 
1995/0108    
	int n; 
 
1992/0222    
	l->key = 0; 
1995/0108    
	if(up) { 
		n = up->inlock-2; 
		if(n < 0) 
1995/0108/sys/src/9/port/taslock.c:80,931995/0109/sys/src/9/port/taslock.c:69,93
1995/0108    
			n = 0; 
		up->inlock = n; 
	} 
1995/0109    
	l->key = 0; 
1994/0322    
} 
 
void 
1995/0109    
ilock(Lock *l) 
{ 
	ulong sr; 
 
	sr = splhi(); 
	lock(l); 
	l->sr = sr; 
} 
 
void 
1994/0322    
iunlock(Lock *l) 
{ 
	ulong sr; 
 
	sr = l->sr; 
	l->key = 0; 
1995/0109    
	unlock(l); 
1994/0322    
	splx(sr); 
1992/0222    
} 
1995/0109/sys/src/9/port/taslock.c:8,401995/0110/sys/src/9/port/taslock.c:8,42 (short | long)
1992/0222    
void 
lock(Lock *l) 
{ 
1995/0108    
	int n; 
1995/0110    
	if(tas(&l->key) == 0) 
		return; 
1995/0108    
 
	if(up) { 
		n = up->inlock+2; 
		up->inlock = n; 
1995/0110    
	for(;;){ 
		while(l->key) 
			; 
1995/0108    
		if(tas(&l->key) == 0) 
			return; 
                 
		for(;;){ 
			while(l->key) 
				if(conf.nproc == 1) { 
					up->yield = 1; 
					sched(); 
				} 
			up->inlock = n; 
			if(tas(&l->key) == 0) 
				return; 
		} 
	} 
1995/0110    
} 
1995/0108    
 
1993/1204    
	if(tas(&l->key) == 0) 
1995/0110    
void 
ilock(Lock *l) 
{ 
	ulong x; 
 
	x = splhi(); 
	if(tas(&l->key) == 0){ 
		l->sr = x; 
1993/1204    
		return; 
1995/0110    
	} 
 
1993/0830    
	for(;;){ 
1994/0808    
		while(l->key) 
			; 
1993/0830    
		if(tas(&l->key) == 0) 
1995/0110    
		if(tas(&l->key) == 0){ 
			l->sr = x; 
1992/0222    
			return; 
1995/0110    
		} 
1992/0222    
	} 
} 
 
1995/0109/sys/src/9/port/taslock.c:41,601995/0110/sys/src/9/port/taslock.c:43,51
1995/0109    
int 
canlock(Lock *l) 
1994/0322    
{ 
1995/0109    
	int n; 
1994/0323    
                 
1995/0109    
	if(up) { 
		n = up->inlock; 
		up->inlock = n+2; 
		if(tas(&l->key)) { 
			up->inlock = n; 
			return 0; 
1994/0323    
		} 
1995/0109    
		return 1; 
1994/0322    
	} 
                 
1992/0222    
	if(tas(&l->key)) 
		return 0; 
1995/0110    
 
1992/0222    
	return 1; 
} 
 
1995/0109/sys/src/9/port/taslock.c:61,931995/0110/sys/src/9/port/taslock.c:52,66
1992/0222    
void 
unlock(Lock *l) 
{ 
1995/0108    
	int n; 
                 
	if(up) { 
		n = up->inlock-2; 
		if(n < 0) 
			n = 0; 
		up->inlock = n; 
	} 
1995/0109    
	l->key = 0; 
1994/0322    
} 
 
void 
1995/0109    
ilock(Lock *l) 
{ 
	ulong sr; 
                 
	sr = splhi(); 
	lock(l); 
	l->sr = sr; 
} 
                 
void 
1994/0322    
iunlock(Lock *l) 
{ 
	ulong sr; 
 
	sr = l->sr; 
1995/0109    
	unlock(l); 
1995/0110    
	l->key = 0; 
1994/0322    
	splx(sr); 
1992/0222    
} 
1995/0110/sys/src/9/port/taslock.c:8,211995/1009/sys/src/9/port/taslock.c:8,33 (short | long)
1992/0222    
void 
lock(Lock *l) 
{ 
1995/0110    
	if(tas(&l->key) == 0) 
1995/1009    
	int i; 
	ulong pc; 
 
	pc = getcallerpc(l); 
 
	if(tas(&l->key) == 0){ 
		l->pc = pc; 
1995/0110    
		return; 
1995/1009    
	} 
1995/0108    
 
1995/0110    
	for(;;){ 
1995/1009    
		i = 0; 
1995/0110    
		while(l->key) 
			; 
1995/0108    
		if(tas(&l->key) == 0) 
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); 
		if(tas(&l->key) == 0){ 
			l->pc = pc; 
1995/0108    
			return; 
1995/1009    
		} 
1995/0108    
	} 
1995/0110    
} 
1995/0108    
 
1995/0110/sys/src/9/port/taslock.c:23,321995/1009/sys/src/9/port/taslock.c:35,48
1995/0110    
ilock(Lock *l) 
{ 
	ulong x; 
1995/1009    
	ulong pc; 
1995/0110    
 
1995/1009    
	pc = getcallerpc(l); 
 
1995/0110    
	x = splhi(); 
	if(tas(&l->key) == 0){ 
		l->sr = x; 
1995/1009    
		l->pc = pc; 
1993/1204    
		return; 
1995/0110    
	} 
 
1995/0110/sys/src/9/port/taslock.c:35,401995/1009/sys/src/9/port/taslock.c:51,57
1994/0808    
			; 
1995/0110    
		if(tas(&l->key) == 0){ 
			l->sr = x; 
1995/1009    
			l->pc = pc; 
1992/0222    
			return; 
1995/0110    
		} 
1992/0222    
	} 
1995/0110/sys/src/9/port/taslock.c:46,511995/1009/sys/src/9/port/taslock.c:63,69
1992/0222    
	if(tas(&l->key)) 
		return 0; 
1995/0110    
 
1995/1009    
	l->pc = getcallerpc(l); 
1992/0222    
	return 1; 
} 
 
1995/1009/sys/src/9/port/taslock.c:21,291995/1014/sys/src/9/port/taslock.c:21,29 (short | long)
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    
} 
1995/1014/sys/src/9/port/taslock.c:6,201995/1030/sys/src/9/port/taslock.c:6,30 (short | long)
1992/0222    
#include "../port/error.h" 
 
void 
1995/1030    
lockloop(Lock *l, ulong pc) 
{ 
	print("lock loop key 0x%lux pc 0x%lux held by pc 0x%lux proc %d\n", 
		l->key, pc, l->pc, l->pid); 
	dumpaproc(up); 
} 
 
void 
1992/0222    
lock(Lock *l) 
{ 
1995/1009    
	int i; 
	ulong pc; 
1995/1030    
	ulong pc, pid; 
1995/1009    
 
	pc = getcallerpc(l); 
1995/1030    
	pid = up ? up->pid : 0; 
1995/1009    
 
	if(tas(&l->key) == 0){ 
		l->pc = pc; 
1995/1030    
		l->pid = pid; 
1995/0110    
		return; 
1995/1009    
	} 
1995/0108    
 
1995/1014/sys/src/9/port/taslock.c:21,311995/1030/sys/src/9/port/taslock.c:31,43
1995/0110    
	for(;;){ 
1995/1009    
		i = 0; 
1995/0110    
		while(l->key) 
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/1030    
			if(i++ > 100000000){ 
				i = 0; 
				lockloop(l, pc); 
			} 
1995/1009    
		if(tas(&l->key) == 0){ 
			l->pc = pc; 
1995/1030    
			l->pid = pid; 
1995/0108    
			return; 
1995/1009    
		} 
1995/0108    
	} 
1995/1014/sys/src/9/port/taslock.c:35,481995/1030/sys/src/9/port/taslock.c:47,62
1995/0110    
ilock(Lock *l) 
{ 
	ulong x; 
1995/1009    
	ulong pc; 
1995/1030    
	ulong pc, pid; 
1995/0110    
 
1995/1009    
	pc = getcallerpc(l); 
1995/1030    
	pid = up ? up->pid : 0; 
1995/1009    
 
1995/0110    
	x = splhi(); 
	if(tas(&l->key) == 0){ 
		l->sr = x; 
1995/1009    
		l->pc = pc; 
1995/1030    
		l->pid = pid; 
1993/1204    
		return; 
1995/0110    
	} 
 
1995/1014/sys/src/9/port/taslock.c:52,571995/1030/sys/src/9/port/taslock.c:66,72
1995/0110    
		if(tas(&l->key) == 0){ 
			l->sr = x; 
1995/1009    
			l->pc = pc; 
1995/1030    
			l->pid = pid; 
1992/0222    
			return; 
1995/0110    
		} 
1992/0222    
	} 
1995/1014/sys/src/9/port/taslock.c:64,691995/1030/sys/src/9/port/taslock.c:79,85
1992/0222    
		return 0; 
1995/0110    
 
1995/1009    
	l->pc = getcallerpc(l); 
1995/1030    
	l->pid = up ? up->pid : 0; 
1992/0222    
	return 1; 
} 
 
Too many diffs (26 > 25). Stopping.


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