Fix data race in test stream

Resolve: #1594

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
This commit is contained in:
Damian Jarek
2019-04-29 14:12:46 +02:00
parent 41040a21f0
commit fd52df9206
2 changed files with 9 additions and 0 deletions

View File

@ -1,3 +1,9 @@
Version 254:
* Fix data race in test::stream::connect
--------------------------------------------------------------------------------
Version 253:
* Fix async_detect_ssl handler type

View File

@ -262,6 +262,9 @@ connect(stream& remote)
{
BOOST_ASSERT(! out_.lock());
BOOST_ASSERT(! remote.out_.lock());
std::lock(in_->m, remote.in_->m);
std::lock_guard<std::mutex> guard1{in_->m, std::adopt_lock};
std::lock_guard<std::mutex> guard2{remote.in_->m, std::adopt_lock};
out_ = remote.in_;
remote.out_ = in_;
in_->code = status::ok;