Home | History | Annotate | Download | only in tests
      1 // Test whether no race conditions are reported on std::thread. Note: since
      2 // the implementation of std::thread uses the shared pointer implementation,
      3 // that implementation has to be annotated in order to avoid false positives.
      4 // See also http://gcc.gnu.org/onlinedocs/libstdc++/manual/debug.html for more
      5 // information.
      6 
      7 #include "../../drd/drd.h"
      8 #define _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE(addr) \
      9   ANNOTATE_HAPPENS_BEFORE(addr)
     10 #define _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER(addr) \
     11   ANNOTATE_HAPPENS_AFTER(addr)
     12 #define _GLIBCXX_EXTERN_TEMPLATE -1
     13 
     14 #include <iostream>
     15 #include <thread>
     16 
     17 int main(int argc, char** argv)
     18 {
     19   std::thread t( []() { } );
     20   t.join();
     21   std::cerr << "Done.\n";
     22   return 0;
     23 }
     24