Skip to content
Snippets Groups Projects
Commit 3ce16470 authored by rsc's avatar rsc
Browse files

nits

parent 603deefc
No related branches found
No related tags found
No related merge requests found
......@@ -25,12 +25,10 @@ pipe_alloc(struct file **f0, struct file **f1)
p = 0;
*f0 = *f1 = 0;
if((*f0 = filealloc()) == 0)
goto oops;
if((*f1 = filealloc()) == 0)
goto oops;
if((p = (struct pipe*) kalloc(PAGE)) == 0)
goto oops;
if((*f0 = filealloc()) == 0 || (*f1 = filealloc()) == 0)
goto bad;
if((p = (struct pipe*)kalloc(PAGE)) == 0)
goto bad;
p->readopen = 1;
p->writeopen = 1;
p->writep = 0;
......@@ -46,9 +44,9 @@ pipe_alloc(struct file **f0, struct file **f1)
(*f1)->pipe = p;
return 0;
oops:
bad:
if(p)
kfree((char*) p, PAGE);
kfree((char*)p, PAGE);
if(*f0){
(*f0)->type = FD_NONE;
fileclose(*f0);
......@@ -74,7 +72,7 @@ pipe_close(struct pipe *p, int writable)
release(&p->lock);
if(p->readopen == 0 && p->writeopen == 0)
kfree((char*) p, PAGE);
kfree((char*)p, PAGE);
}
//PAGEBREAK: 20
......@@ -107,10 +105,10 @@ pipe_read(struct pipe *p, char *addr, int n)
int i;
acquire(&p->lock);
while(p->readp == p->writep){
if(p->writeopen == 0 || cp->killed){
while(p->readp == p->writep && p->writeopen){
if(cp->killed){
release(&p->lock);
return 0;
return -1;
}
sleep(&p->readp, &p->lock);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment