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

1994/0804/port/devpipe.c (diff list | history)

1994/0503/sys/src/9/port/devpipe.c:22,281994/0804/sys/src/9/port/devpipe.c:22,27 (short | long | prev | next)
1992/0621    
struct 
1990/1009    
{ 
	Lock; 
1992/0621    
	Pipe	*pipe; 
	ulong	path; 
1990/1009    
} pipealloc; 
 
1994/0503/sys/src/9/port/devpipe.c:85,921994/0804/sys/src/9/port/devpipe.c:84,89
1993/0528    
 
1990/1009    
	lock(&pipealloc); 
1992/0621    
	p->path = ++pipealloc.path; 
	p->next = pipealloc.pipe; 
	pipealloc.pipe = p; 
1990/1009    
	unlock(&pipealloc); 
 
1993/0528    
	c->qid = (Qid){CHDIR|NETQID(2*p->path, Qdir), 0}; 
1994/0503/sys/src/9/port/devpipe.c:223,2291994/0804/sys/src/9/port/devpipe.c:220,226
1990/0227    
void 
pipeclose(Chan *c) 
{ 
1992/0621    
	Pipe *p, *f, **l; 
1994/0804    
	Pipe *p; 
1990/0629    
 
1993/0528    
	p = c->aux; 
	qlock(p); 
1994/0503/sys/src/9/port/devpipe.c:236,2501994/0804/sys/src/9/port/devpipe.c:233,247
1993/1111    
		case Qdata0: 
			p->qref[0]--; 
			if(p->qref[0] == 0){ 
				qclose(p->q[0]); 
				qhangup(p->q[1]); 
1994/0804    
				qclose(p->q[0]); 
1993/1111    
			} 
			break; 
		case Qdata1: 
			p->qref[1]--; 
			if(p->qref[1] == 0){ 
				qclose(p->q[1]); 
				qhangup(p->q[0]); 
1994/0804    
				qclose(p->q[1]); 
1993/1111    
			} 
			break; 
1991/0314    
		} 
1994/0503/sys/src/9/port/devpipe.c:265,2861994/0804/sys/src/9/port/devpipe.c:262,272
1993/0528    
	p->ref--; 
	if(p->ref == 0){ 
		qunlock(p); 
1990/11161    
		lock(&pipealloc); 
1992/0621    
		l = &pipealloc.pipe; 
		for(f = *l; f; f = f->next) { 
			if(f == p) { 
				*l = p->next; 
				break; 
			} 
1992/0625    
			l = &f->next; 
1992/0621    
		} 
1990/11161    
		unlock(&pipealloc); 
1993/0528    
		free(p->q[0]); 
		free(p->q[1]); 
1992/0621    
		free(p); 
1990/11161    
	} 
1993/0528    
                 
	qunlock(p); 
1994/0804    
	} else 
		qunlock(p); 
1990/0227    
} 
 
long 


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