| plan 9 kernel history: overview | file list | diff list |
1995/1014/port/taslock.c (diff list | history)
| 1995/1009/sys/src/9/port/taslock.c:21,29 – 1995/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 |
| |
| 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,76 – 1995/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,84 – 1995/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 | } | |