URI:
       ttspawn.c - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
       ttspawn.c (803B)
       ---
            1 #include "u.h"
            2 #include "libc.h"
            3 #include "thread.h"
            4 
            5 void
            6 threadmain(int argc, char **argv)
            7 {
            8         int fd[3];
            9         Channel *c;
           10         Waitmsg *w;
           11 
           12         ARGBEGIN{
           13         case 'D':
           14                 break;
           15         }ARGEND
           16 
           17         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         else
           32                 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         else
           37                 print("%d %lud %lud %lud %s\n", w->pid, w->time[0], w->time[1], w->time[2], w->msg);
           38         threadexits(nil);
           39 }