Blob
1 #include "u.h"2 #include "libc.h"3 #include "thread.h"5 void6 threadmain(int argc, char **argv)7 {8 int fd[3];9 Channel *c;10 Waitmsg *w;12 ARGBEGIN{13 case 'D':14 break;15 }ARGEND17 c = threadwaitchan();18 fd[0] = dup(0, -1);19 fd[1] = dup(1, -1);20 fd[2] = dup(2, -1);21 if(threadspawn(fd, argv[0], argv) < 0)22 sysfatal("threadspawn: %r");23 fd[0] = dup(0, -1);24 fd[1] = dup(1, -1);25 fd[2] = dup(2, -1);26 if(threadspawn(fd, argv[0], argv) < 0)27 sysfatal("threadspawn: %r");28 w = recvp(c);29 if(w == nil)30 print("exec/recvp failed: %r\n");31 else32 print("%d %lud %lud %lud %s\n", w->pid, w->time[0], w->time[1], w->time[2], w->msg);33 w = recvp(c);34 if(w == nil)35 print("exec/recvp failed: %r\n");36 else37 print("%d %lud %lud %lud %s\n", w->pid, w->time[0], w->time[1], w->time[2], w->msg);38 threadexits(nil);39 }