20 #include <ripple/core/JobQueue.h>
42 template <
class Rep,
class Period>
64 using namespace std::chrono_literals;
67 testcase(
"correct order");
70 cfg->FORCE_MULTI_THREAD =
true;
77 jtCLIENT,
"Coroutine-Test", [&](
auto const& cr) {
92 using namespace std::chrono_literals;
95 testcase(
"incorrect order");
98 cfg->FORCE_MULTI_THREAD =
true;
104 jtCLIENT,
"Coroutine-Test", [&](
auto const& c) {
115 using namespace std::chrono_literals;
118 testcase(
"thread specific storage");
123 static int const N = 4;
127 BEAST_EXPECT(*lv == -1);
130 jq.addJob(
jtCLIENT,
"LocalValue-Test", [&]() {
131 this->BEAST_EXPECT(*lv == -1);
133 this->BEAST_EXPECT(*lv == -2);
137 BEAST_EXPECT(*lv == -1);
139 for (
int i = 0; i < N; ++i)
141 jq.postCoro(
jtCLIENT,
"Coroutine-Test", [&,
id = i](
auto const& c) {
146 this->BEAST_EXPECT(*lv == -1);
148 this->BEAST_EXPECT(*lv ==
id);
152 this->BEAST_EXPECT(*lv ==
id);
157 for (
auto const& c : a)
163 for (
auto const& c : a)
169 jq.addJob(
jtCLIENT,
"LocalValue-Test", [&]() {
170 this->BEAST_EXPECT(*lv == -2);
174 BEAST_EXPECT(*lv == -1);