Blob


1 #include "u.h"
2 #include "libc.h"
3 #include "thread.h"
5 void
6 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 void
23 threadmain(int argc, char **argv)
24 {
25 int i;
26 Channel *c;
27 Waitmsg *w;
29 ARGBEGIN{
30 case 'D':
31 break;
32 }ARGEND
34 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 }