| // This file is used from other tests. |
| // RUN: true |
| |
| #include <thread> |
| |
| #include <stdio.h> |
| #include <stdlib.h> |
| |
| struct MyObject; |
| typedef MyObject *MyObjectRef; |
| extern "C" { |
| void InitializeLibrary(); |
| MyObject *ObjectCreate(); |
| long ObjectRead(MyObject *); |
| void ObjectWrite(MyObject *, long); |
| void ObjectWriteAnother(MyObject *, long); |
| } |
| |
| extern "C" void NonInstrumentedModule() { |
| InitializeLibrary(); |
| |
| MyObjectRef ref = ObjectCreate(); |
| std::thread t1([ref]{ ObjectWrite(ref, 42); }); |
| std::thread t2([ref]{ ObjectWrite(ref, 43); }); |
| t1.join(); |
| t2.join(); |
| } |