#include #include enum { N = 1 * 1000*1000, }; int tag1; int tag2; void thread(void) { int i; for(i = 0; i < N; i++){ while(rendezvous(&tag1, nil) == (void*)-1) ; while(rendezvous(&tag2, nil) == (void*)-1) ; } } void main(void) { switch(rfork(RFPROC|RFMEM)){ case -1: sysfatal("fork: %r"); case 0: thread(); exits(""); default: thread(); wait(); exits(""); } }