Skip to content

Commit

Permalink
Create pong.cpp
Browse files Browse the repository at this point in the history
  • Loading branch information
DKosov committed Dec 3, 2018
1 parent b2954a3 commit 08848a1
Showing 1 changed file with 36 additions and 0 deletions.
36 changes: 36 additions & 0 deletions Kosov/9/pong.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#include <iostream>
#include <condition_variable>
#include <thread>


std::condition_variable_any cv;
std::mutex cv_m;
bool ping = true;
int NUM = 500000;

void waits(){
for(int i = 0; i < NUM; i++){
std::unique_lock<std::mutex> lk(cv_m);
cv.wait(lk, []{return ping;});
std::cout << "ping\n";
ping = false;
cv.notify_one();
}
}

void signals(){
for(int i = 0; i < NUM; i++){
std::unique_lock<std::mutex> lk(cv_m);
cv.wait(lk, []{return !ping;});
std::cout << "pong\n";
ping = true;
cv.notify_one();
}
}

int main(){
std::thread t1(waits), t2(signals);
t1.join();
t2.join();
return 0;
}

0 comments on commit 08848a1

Please sign in to comment.