diff options
Diffstat (limited to 'works/life/operating-system-experiment/SemaphoreAvoidDataRaceDemo.cpp')
-rw-r--r-- | works/life/operating-system-experiment/SemaphoreAvoidDataRaceDemo.cpp | 36 |
1 files changed, 0 insertions, 36 deletions
diff --git a/works/life/operating-system-experiment/SemaphoreAvoidDataRaceDemo.cpp b/works/life/operating-system-experiment/SemaphoreAvoidDataRaceDemo.cpp deleted file mode 100644 index 0068082..0000000 --- a/works/life/operating-system-experiment/SemaphoreAvoidDataRaceDemo.cpp +++ /dev/null @@ -1,36 +0,0 @@ -#include "Semaphore.h" -#include "Thread.h" - -#include <iostream> - -int main() { - unsigned data = 0; - - cru::Semaphore semaphore; - - cru::Thread t1([&data, &semaphore] { - for (int i = 0; i < 100000; i++) { - semaphore.P(); - data += 10; - semaphore.V(); - } - }); - - cru::Thread t2([&data, &semaphore] { - for (int i = 0; i < 100000; i++) { - semaphore.P(); - data += 10; - semaphore.V(); - } - }); - - std::cout << "Created thread: " << t1.GetNativeID() << '\n'; - std::cout << "Created thread: " << t2.GetNativeID() << '\n'; - - t1.Join(); - t2.Join(); - std::cout << "Answer is " << data << ", which is " - << (data == 2000000 ? "correct" : "false") << '\n'; - - return 0; -} |