| plan 9 kernel history: overview | file list | diff list |
1990/0322/port/stream.c (diff list | history)
| 1990/0321/sys/src/9/port/stream.c:51,57 – 1990/0322/sys/src/9/port/stream.c:51,57 (short | long | prev | next) | ||
| 1990/0227 | typedef struct { int size; | |
| 1990/0312 | Blist; | |
| 1990/0322 | QLock q; /* qlock for sleepers on r */ | |
| 1990/0312 | Rendez r; /* sleep here waiting for blocks */ | |
| 1990/0227 | } Bclass; Bclass bclass[Nclass]={ | |
| 1990/0321/sys/src/9/port/stream.c:109,117 – 1990/0322/sys/src/9/port/stream.c:109,116 | ||
| 1990/0227 | { Block *bp; Bclass *bcp; | |
| 1990/0322 | int loop=0; | |
| 1990/0227 |
| |
| 1990/0321/sys/src/9/port/stream.c:124,133 – 1990/0322/sys/src/9/port/stream.c:123,134 | ||
| 1990/0227 | lock(bcp); while(bcp->first == 0){ unlock(bcp); | |
| 1990/0312 |
| |
| 1990/0227 |
| |
| 1990/0312 |
| |
| 1990/0322 | print("waiting for block %d\n", size); if(loop++ > 10) panic("waiting for blocks"); qlock(&bcp->q); tsleep(&bcp->r, isblock, (void *)bcp, 250); qunlock(&bcp->q); | |
| 1990/0227 | lock(bcp); } bp = bcp->first; | |