reopen plumber, build mail
This commit is contained in:
parent
98df7c80d8
commit
ced6fd340e
2 changed files with 44 additions and 16 deletions
|
|
@ -21,32 +21,60 @@ Window* openfile(Text*, Expand*, int);
|
|||
int nuntitled;
|
||||
|
||||
void
|
||||
plumbproc(void *v)
|
||||
plumbthread(void *v)
|
||||
{
|
||||
CFid *fid;
|
||||
Plumbmsg *m;
|
||||
Timer *t;
|
||||
|
||||
USED(v);
|
||||
threadsetname("plumbproc");
|
||||
|
||||
/*
|
||||
* Loop so that if plumber is restarted, acme need not be.
|
||||
*/
|
||||
for(;;){
|
||||
m = plumbrecvfid(plumbeditfid);
|
||||
if(m == nil)
|
||||
threadexits(nil);
|
||||
sendp(cplumb, m);
|
||||
/*
|
||||
* Connect to plumber.
|
||||
*/
|
||||
plumbunmount();
|
||||
while((fid = plumbopenfid("edit", OREAD|OCEXEC)) == nil){
|
||||
t = timerstart(2000);
|
||||
recv(t->c, nil);
|
||||
timerstop(t);
|
||||
}
|
||||
plumbeditfid = fid;
|
||||
plumbsendfid = plumbopenfid("send", OWRITE|OCEXEC);
|
||||
|
||||
/*
|
||||
* Relay messages.
|
||||
*/
|
||||
for(;;){
|
||||
m = plumbrecvfid(plumbeditfid);
|
||||
if(m == nil)
|
||||
break;
|
||||
sendp(cplumb, m);
|
||||
}
|
||||
|
||||
/*
|
||||
* Lost connection.
|
||||
*/
|
||||
fid = plumbsendfid;
|
||||
plumbsendfid = nil;
|
||||
fsclose(fid);
|
||||
|
||||
fid = plumbeditfid;
|
||||
plumbeditfid = nil;
|
||||
fsclose(fid);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
startplumbing(void)
|
||||
{
|
||||
plumbeditfid = plumbopenfid("edit", OREAD|OCEXEC);
|
||||
if(plumbeditfid == nil)
|
||||
fprint(2, "acme: can't initialize plumber: %r\n");
|
||||
else{
|
||||
cplumb = chancreate(sizeof(Plumbmsg*), 0);
|
||||
chansetname(cplumb, "cplumb");
|
||||
threadcreate(plumbproc, nil, STACK);
|
||||
}
|
||||
plumbsendfid = plumbopenfid("send", OWRITE|OCEXEC);
|
||||
cplumb = chancreate(sizeof(Plumbmsg*), 0);
|
||||
chansetname(cplumb, "cplumb");
|
||||
threadcreate(plumbthread, nil, STACK);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<$PLAN9/src/mkhdr
|
||||
|
||||
TARG=acme
|
||||
# DIRS=mail
|
||||
DIRS=mail
|
||||
|
||||
OFILES=\
|
||||
acme.$O\
|
||||
|
|
@ -30,6 +30,6 @@ HFILES=dat.h\
|
|||
fns.h\
|
||||
|
||||
<$PLAN9/src/mkone
|
||||
# <$PLAN9/src/mkdirs
|
||||
<$PLAN9/src/mkdirs
|
||||
|
||||
edit.$O ecmd.$O elog.$O: edit.h
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue