-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathApp.cpp
36 lines (31 loc) · 1.03 KB
/
App.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <atomic>
#include <future>
#include "system/connection.h"
int driver() {
System::Connection c;
int counter = 0;
std::atomic<bool> quit = true;
std::cout << "Pre connection call." << std::endl;
std::shared_future<void> f = std::async(std::launch::async, &System::Connection::waitForConnection, &c, &quit);
std::cout << "Waiting . . . " << std::endl;
std::future_status status;
do {
status = f.wait_for(std::chrono::seconds(1));
if (status == std::future_status::deferred) {
std::cout << "deferred" << std::endl;
} else if (status == std::future_status::timeout) {
std::cout << "timeout" << std::endl;
counter++;
if (counter > 10) {
quit = false;
}
} else if (status == std::future_status::ready) {
std::cout << "ready" << std::endl;
}
} while (status != std::future_status::ready);
std::cout << "End of driver." << std::endl;
}
int main() {
driver();
}