#include #include #include #include #include <9p.h> static void launchsrv(void *v) { srv(v); } void threadpostmountsrv(Srv *s, char *name, char *mtpt, int flag) { int fd[2]; if(!s->nopipe){ if(pipe(fd) < 0) sysfatal("pipe: %r"); s->infd = s->outfd = fd[1]; s->srvfd = fd[0]; } if(name || mtpt){ if(post9pservice(s->srvfd, name, mtpt) < 0) sysfatal("post9pservice %s: %r", name); }else if(!s->nopipe) sysfatal("no one to serve"); if(s->foreground) srv(s); else proccreate(launchsrv, s, 32*1024); }