~kris/9p

9hist

878a6eb61c7a055c45aa1b79347929b827d9c250 — David du Colombier 32 years ago 27fa333
Plan 9 from Bell Labs 1994-08-05
2 files changed, 17 insertions(+), 3 deletions(-)

M port/proc.c
M port/taslock.c
M port/proc.c => port/proc.c +8 -1
@@ 351,7 351,7 @@ tfn(void *arg)
void
tsleep(Rendez *r, int (*fn)(void*), void *arg, int ms)
{
	ulong when;
	ulong when, i;
	Proc *f, **l;

	when = MS2TK(ms)+MACHP(0)->ticks;


@@ 359,6 359,7 @@ tsleep(Rendez *r, int (*fn)(void*), void *arg, int ms)
	lock(&talarm);
	/* take out of list if checkalarm didn't */
	if(up->trend) {
i = 0;
		l = &talarm.list;
		for(f = *l; f; f = f->tlink) {
			if(f == up) {


@@ 366,6 367,12 @@ tsleep(Rendez *r, int (*fn)(void*), void *arg, int ms)
				break;
			}
			l = &f->tlink;
if(i++ > 20) {
	print("tlarm loop: %lux\n", talarm.list);
	for(i = 20, f = talarm.list; f && i--; f = f->tlink)
		print("%lux ", f);
		for(;;);
}
		}
	}
	/* insert in increasing time order */

M port/taslock.c => port/taslock.c +9 -2
@@ 8,12 8,19 @@
void
lock(Lock *l)
{
	int loop;

	if(tas(&l->key) == 0)
		return;

	loop = 50000000;
	for(;;){
		while(l->key)
			;
		while(l->key) {
			if(loop-- <= 0) {
				dumpstack();
				panic("lock loop: lock %lux\n", l);
			}
		}
		if(tas(&l->key) == 0)
			return;
	}