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 cd7ddc9b 2003-11-23 devnull print("doexec\n");
11 76193d7c 2003-09-30 devnull procexec(nil, argv[0], argv);
12 76193d7c 2003-09-30 devnull sendp(threadwaitchan(), nil);
13 76193d7c 2003-09-30 devnull }
14 76193d7c 2003-09-30 devnull
15 76193d7c 2003-09-30 devnull void
16 76193d7c 2003-09-30 devnull threadmain(int argc, char **argv)
17 76193d7c 2003-09-30 devnull {
18 76193d7c 2003-09-30 devnull Channel *c;
19 76193d7c 2003-09-30 devnull Waitmsg *w;
20 76193d7c 2003-09-30 devnull
21 76193d7c 2003-09-30 devnull ARGBEGIN{
22 76193d7c 2003-09-30 devnull case 'D':
23 76193d7c 2003-09-30 devnull _threaddebuglevel = ~0;
24 76193d7c 2003-09-30 devnull break;
25 76193d7c 2003-09-30 devnull }ARGEND
26 76193d7c 2003-09-30 devnull
27 76193d7c 2003-09-30 devnull c = threadwaitchan();
28 76193d7c 2003-09-30 devnull proccreate(doexec, argv, 8192);
29 76193d7c 2003-09-30 devnull w = recvp(c);
30 76193d7c 2003-09-30 devnull if(w == nil)
31 cd7ddc9b 2003-11-23 devnull print("exec failed: %r\n");
32 76193d7c 2003-09-30 devnull else
33 cd7ddc9b 2003-11-23 devnull print("%d %lud %lud %lud %s\n", w->pid, w->time[0], w->time[1], w->time[2], w->msg);
34 76193d7c 2003-09-30 devnull threadexits(nil);
35 76193d7c 2003-09-30 devnull }