change to use new thread library

This commit is contained in:
rsc 2004-12-27 00:32:50 +00:00
parent 678ede7e54
commit 93f2ae0d92
3 changed files with 31 additions and 14 deletions

View file

@ -112,11 +112,11 @@ extproc(void *argv)
c = arg[0];
fd = (int)arg[1];
threadfdnoblock(fd);
i = 0;
for(;;){
i = 1-i; /* toggle */
n = threadread(fd, plumbbuf[i].data, sizeof plumbbuf[i].data);
n = read(fd, plumbbuf[i].data, sizeof plumbbuf[i].data);
if(0) fprint(2, "ext %d\n", n);
if(n <= 0){
fprint(2, "samterm: extern read error: %r\n");
threadexits("extern"); /* not a fatal error */
@ -177,9 +177,10 @@ extstart(void)
}
plumbc = chancreate(sizeof(int), 0);
chansetname(plumbc, "plumbc");
arg[0] = plumbc;
arg[1] = (void*)fd;
threadcreate(extproc, arg, STACK);
proccreate(extproc, arg, STACK);
atexit(removeextern);
}
@ -255,6 +256,7 @@ plumbstart(void)
if(fid == nil)
return -1;
plumbc = chancreate(sizeof(int), 0);
chansetname(plumbc, "plumbc");
if(plumbc == nil){
fsclose(fid);
return -1;
@ -272,16 +274,17 @@ hostproc(void *arg)
c = arg;
i = 0;
threadfdnoblock(hostfd[0]);
for(;;){
i = 1-i; /* toggle */
n = threadread(hostfd[0], hostbuf[i].data, sizeof hostbuf[i].data);
n = read(hostfd[0], hostbuf[i].data, sizeof hostbuf[i].data);
if(0) fprint(2, "hostproc %d\n", n);
if(n <= 0){
fprint(2, "samterm: host read error: %r\n");
threadexitsall("host");
}
hostbuf[i].n = n;
which = i;
if(0) fprint(2, "hostproc send %d\n", which);
send(c, &which);
}
}
@ -290,5 +293,6 @@ void
hoststart(void)
{
hostc = chancreate(sizeof(int), 0);
threadcreate(hostproc, hostc, STACK);
chansetname(hostc, "hostc");
proccreate(hostproc, hostc, STACK);
}