diff options
author | rsc <devnull@localhost> | 2006-10-19 21:58:59 +0000 |
---|---|---|
committer | rsc <devnull@localhost> | 2006-10-19 21:58:59 +0000 |
commit | 6fc7da3c529ca7c610e8172f5b02980c75597dd5 (patch) | |
tree | 6e06f1a96414ceb59a8016fb257b46b6f87f9a1c /src/libventi/conn.c | |
parent | 067d852abe242ee1d267bcc0d652cd6bb31b7e17 (diff) | |
download | plan9port-6fc7da3c529ca7c610e8172f5b02980c75597dd5.tar.gz plan9port-6fc7da3c529ca7c610e8172f5b02980c75597dd5.tar.bz2 plan9port-6fc7da3c529ca7c610e8172f5b02980c75597dd5.zip |
Fix a handful of small one-time memory leaks in vbackup,
and one per-package memory leak (in writethread).
Diffstat (limited to 'src/libventi/conn.c')
-rw-r--r-- | src/libventi/conn.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/libventi/conn.c b/src/libventi/conn.c index 990e7db2..5b6d5436 100644 --- a/src/libventi/conn.c +++ b/src/libventi/conn.c @@ -32,15 +32,19 @@ vtfreeconn(VtConn *z) { vthangup(z); qlock(&z->lk); - for(;;){ + /* + * Wait for send and recv procs to notice + * the hangup and clear out the queues. + */ + while(z->readq || z->writeq){ if(z->readq) _vtqhangup(z->readq); - else if(z->writeq) + if(z->writeq) _vtqhangup(z->writeq); - else - break; rsleep(&z->rpcfork); } packetfree(z->part); + vtfree(z->version); + vtfree(z->sid); vtfree(z); } |