#include #include #include "mcslock.h" enum { N = 1 * 1000*1000, }; Lock sem1; uchar buffer[128]; enum { Cacheline = 64, }; int max(int x, int y) { if(x>y) return x; return y; } void thread(void) { int i; for(i = 0; i < N; i++){ lock(&sem1); unlock(&sem1); } } void main(void) { switch(rfork(RFPROC|RFMEM)){ case -1: sysfatal("fork: %r"); case 0: thread(); exits(""); default: thread(); wait(); exits(""); } }