#include #include #include #include #include "bench.h" volatile int go = 0; monitor M {} m1, m2, m3, m4; void __attribute__((noinline)) call( M & mutex p1, M & mutex p2, M & mutex p3, M & mutex p4 ) {} void __attribute__((noinline)) wait( M & mutex p1, M & mutex p2, M & mutex p3, M & mutex p4 ) { go = 1; for ( times ) { waitfor( call : p1, p2, p3, p4 ); } go = 0; } thread T {}; void main( T & ) { while( go == 0 ) { yield(); } BENCH( while( go == 1 ) { call( m1, m2, m3, m4 ); }, result ) printf( "%g\n", result ); } int main( int argc, char * argv[] ) { BENCH_START() T t; wait( m1, m2, m3, m4 ); } // Local Variables: // // tab-width: 4 // // End: //