clang-tidy
[awesomized/libmemcached] / test / lib / Retry.cpp
1 #include "Retry.hpp"
2
3 Retry::Retry(predicate pred_, unsigned int max_, chrono::milliseconds sleep_for_)
4 : max{max_}
5 , sleep_for{sleep_for_}
6 , pred{move(pred_)}
7 {}
8
9 bool Retry::operator()() {
10 auto cnt = max;
11 auto dur = sleep_for;
12
13 while (cnt--) {
14 if (pred()) {
15 return true;
16 }
17 this_thread::sleep_for(dur);
18 dur += dur/10;
19 }
20
21 return false;
22 }