Blob
1 #include "a.h"3 typedef struct New New;4 struct New5 {6 void (*fn)(void*);7 void *arg;8 };10 Channel *mailthreadchan;12 void13 mailthread(void (*fn)(void*), void *arg)14 {15 New n;17 n.fn = fn;18 n.arg = arg;19 send(mailthreadchan, &n);20 }22 void23 mailproc(void *v)24 {25 New n;27 while(recv(mailthreadchan, &n) == 1)28 threadcreate(n.fn, n.arg, STACK);29 }31 void32 mailthreadinit(void)33 {34 mailthreadchan = chancreate(sizeof(New), 0);35 proccreate(mailproc, nil, STACK);36 }