]> git.lizzy.rs Git - plan9front.git/blobdiff - sys/src/lib9p/queue.c
pc: replace duplicated and broken mmu flush code in vunmap()
[plan9front.git] / sys / src / lib9p / queue.c
index 971e8a78d2e48abbc984f5bb1c88503a2e496acb..478f40dddd13d07c1ee3e8929261027ce7c0c34f 100644 (file)
@@ -35,8 +35,14 @@ _reqqueueproc(void *v)
                memset(&r->qu, 0, sizeof(r->qu));
                q->cur = r;
                qunlock(q);
+               if(f == nil)
+                       break;
                f(r);
        }
+
+       free(r);
+       free(q);
+       threadexits(nil);
 }
 
 Reqqueue *
@@ -83,3 +89,14 @@ reqqueueflush(Reqqueue *q, Req *r)
                respond(r, "interrupted");
        }
 }
+
+void
+reqqueuefree(Reqqueue *q)
+{
+       Req *r;
+
+       if(q == nil)
+               return;
+       r = emalloc9p(sizeof(Req));
+       reqqueuepush(q, r, nil);
+}