#include using namespace boost::interprocess; #include using namespace boost::posix_time; #include using namespace std; int main() { const size_t iterations = 100000; named_semaphore sem1(open_only_t(), "sem1"); named_semaphore sem2(open_only_t(), "sem2"); ptime start = boost::posix_time::microsec_clock::local_time(); for(size_t i = 0; i < iterations; ++i) { sem1.post(); sem2.wait(); } ptime end = boost::posix_time::microsec_clock::local_time(); time_duration delta = end - start; double seconds = double(delta.total_nanoseconds())/1000000000.0; cout << "Total elapsed time: " << seconds << endl;; cout << "Time per iteration: " << (seconds/double(iterations)) << endl; return 0; }