Blame


1 76193d7c 2003-09-30 devnull #include <lib9.h>
2 76193d7c 2003-09-30 devnull #include <thread.h>
3 76193d7c 2003-09-30 devnull extern int _threaddebuglevel;
4 76193d7c 2003-09-30 devnull
5 76193d7c 2003-09-30 devnull void
6 76193d7c 2003-09-30 devnull doexec(void *v)
7 76193d7c 2003-09-30 devnull {
8 76193d7c 2003-09-30 devnull char **argv = v;
9 76193d7c 2003-09-30 devnull
10 76193d7c 2003-09-30 devnull procexec(nil, argv[0], argv);
11 76193d7c 2003-09-30 devnull sendp(threadwaitchan(), nil);
12 76193d7c 2003-09-30 devnull }
13 76193d7c 2003-09-30 devnull
14 76193d7c 2003-09-30 devnull void
15 76193d7c 2003-09-30 devnull threadmain(int argc, char **argv)
16 76193d7c 2003-09-30 devnull {
17 76193d7c 2003-09-30 devnull Channel *c;
18 76193d7c 2003-09-30 devnull Waitmsg *w;
19 76193d7c 2003-09-30 devnull
20 76193d7c 2003-09-30 devnull ARGBEGIN{
21 76193d7c 2003-09-30 devnull case 'D':
22 76193d7c 2003-09-30 devnull _threaddebuglevel = ~0;
23 76193d7c 2003-09-30 devnull break;
24 76193d7c 2003-09-30 devnull }ARGEND
25 76193d7c 2003-09-30 devnull
26 76193d7c 2003-09-30 devnull c = threadwaitchan();
27 76193d7c 2003-09-30 devnull proccreate(doexec, argv, 8192);
28 76193d7c 2003-09-30 devnull w = recvp(c);
29 76193d7c 2003-09-30 devnull if(w == nil)
30 76193d7c 2003-09-30 devnull print("exec failed\n");
31 76193d7c 2003-09-30 devnull else
32 76193d7c 2003-09-30 devnull print("%d %lu %lu %lu %s\n", w->pid, w->time[0], w->time[1], w->time[2], w->msg);
33 76193d7c 2003-09-30 devnull threadexits(nil);
34 76193d7c 2003-09-30 devnull }