From 056fe1ba7fa0b70f871dfb9005b24eb8e4cc230b Mon Sep 17 00:00:00 2001 From: rsc Date: Sun, 23 Nov 2003 18:19:58 +0000 Subject: new venti library. --- src/libventi/conn.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/libventi/conn.c (limited to 'src/libventi/conn.c') diff --git a/src/libventi/conn.c b/src/libventi/conn.c new file mode 100644 index 00000000..3fa6fbe5 --- /dev/null +++ b/src/libventi/conn.c @@ -0,0 +1,36 @@ +#include +#include +#include +#include "queue.h" + +VtConn* +vtconn(int infd, int outfd) +{ + VtConn *z; + + z = vtmallocz(sizeof(VtConn)); + z->tagrend.l = &z->lk; + z->rpcfork.l = &z->lk; + z->infd = infd; + z->outfd = outfd; + z->part = packetalloc(); + return z; +} + +void +vtfreeconn(VtConn *z) +{ + vthangup(z); + qlock(&z->lk); + for(;;){ + if(z->readq) + _vtqhangup(z->readq); + else if(z->writeq) + _vtqhangup(z->writeq); + else + break; + rsleep(&z->rpcfork); + } + packetfree(z->part); + vtfree(z); +} -- cgit v1.2.3