Run clang-format
This commit is contained in:
@@ -1,42 +1,35 @@
|
||||
void test_concurrent_push_and_pop_on_empty_queue()
|
||||
void
|
||||
test_concurrent_push_and_pop_on_empty_queue()
|
||||
{
|
||||
threadsafe_queue<int> q;
|
||||
threadsafe_queue<int> q;
|
||||
|
||||
std::promise<void> go,push_ready,pop_ready;
|
||||
std::shared_future<void> ready(go.get_future());
|
||||
std::promise<void> go, push_ready, pop_ready;
|
||||
std::shared_future<void> ready(go.get_future());
|
||||
|
||||
std::future<void> push_done;
|
||||
std::future<int> pop_done;
|
||||
std::future<void> push_done;
|
||||
std::future<int> pop_done;
|
||||
|
||||
try
|
||||
{
|
||||
push_done=std::async(std::launch::async,
|
||||
[&q,ready,&push_ready]()
|
||||
{
|
||||
push_ready.set_value();
|
||||
ready.wait();
|
||||
q.push(42);
|
||||
}
|
||||
);
|
||||
pop_done=std::async(std::launch::async,
|
||||
[&q,ready,&pop_ready]()
|
||||
{
|
||||
pop_ready.set_value();
|
||||
ready.wait();
|
||||
return q.pop();
|
||||
}
|
||||
);
|
||||
push_ready.get_future().wait();
|
||||
pop_ready.get_future().wait();
|
||||
go.set_value();
|
||||
try {
|
||||
push_done = std::async(std::launch::async, [&q, ready, &push_ready]() {
|
||||
push_ready.set_value();
|
||||
ready.wait();
|
||||
q.push(42);
|
||||
});
|
||||
pop_done = std::async(std::launch::async, [&q, ready, &pop_ready]() {
|
||||
pop_ready.set_value();
|
||||
ready.wait();
|
||||
return q.pop();
|
||||
});
|
||||
push_ready.get_future().wait();
|
||||
pop_ready.get_future().wait();
|
||||
go.set_value();
|
||||
|
||||
push_done.get();
|
||||
assert(pop_done.get()==42);
|
||||
assert(q.empty());
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
go.set_value();
|
||||
throw;
|
||||
}
|
||||
push_done.get();
|
||||
assert(pop_done.get() == 42);
|
||||
assert(q.empty());
|
||||
}
|
||||
catch (...) {
|
||||
go.set_value();
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user