Home | History | Annotate | Download | only in tests
      1 // Test program that allows to verify whether Drd works fine for programs that
      2 // use the boost::thread, boost::mutex and boost::condition classes.
      3 
      4 
      5 #include <boost/thread/condition.hpp>
      6 #include <boost/thread/mutex.hpp>
      7 #include <boost/thread/thread.hpp>
      8 #include <iostream>
      9 
     10 
     11 static boost::condition s_cva;
     12 static boost::mutex s_m;
     13 
     14 
     15 static void thread_func(void)
     16 {
     17   std::cerr << "Thread 2.\n";
     18   boost::mutex::scoped_lock sl(s_m);
     19   s_cva.notify_all();
     20   s_cva.wait(sl);
     21 }
     22 
     23 int main(int argc, char** argv)
     24 {
     25   std::cerr << "Thread 1.\n";
     26   boost::mutex::scoped_lock sl(s_m);
     27   boost::thread t(thread_func);
     28   s_cva.wait(sl);
     29   s_cva.notify_all();
     30   sl.unlock();
     31   t.join();
     32   std::cerr << "Finished.\n";
     33   return 0;
     34 }
     35