Blob
1 #include "u.h"2 #include "libc.h"3 #include "thread.h"5 void6 execproc(void *v)7 {8 int i, fd[3];9 char buf[100], *args[3];11 i = (int)v;12 sprint(buf, "%d", i);13 fd[0] = dup(0, -1);14 fd[1] = dup(1, -1);15 fd[2] = dup(2, -1);16 args[0] = "echo";17 args[1] = buf;18 args[2] = nil;19 threadexec(nil, fd, args[0], args);20 }22 void23 threadmain(int argc, char **argv)24 {25 int i;26 Channel *c;27 Waitmsg *w;29 ARGBEGIN{30 case 'D':31 break;32 }ARGEND34 c = threadwaitchan();35 for(i=0;; i++){36 proccreate(execproc, (void*)i, 16384);37 w = recvp(c);38 if(w == nil)39 sysfatal("exec/recvp failed: %r");40 }41 }