projects
/
m6w6
/
libmemcached
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
71fde0e046f7cc03a25d568b0b3893175dc31dc3
[m6w6/libmemcached]
/
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
*=
1.2
;
19
}
20
21
return false
;
22
}