Locking around read/write to peering_endpoint. (#4019)
This commit is contained in:
parent
0ad6e781fb
commit
c4111ea629
1 changed files with 3 additions and 0 deletions
|
|
@ -81,17 +81,20 @@ void nano::transport::channel::send (nano::message & message_a, std::function<vo
|
||||||
|
|
||||||
void nano::transport::channel::set_peering_endpoint (nano::endpoint endpoint)
|
void nano::transport::channel::set_peering_endpoint (nano::endpoint endpoint)
|
||||||
{
|
{
|
||||||
|
nano::lock_guard<nano::mutex> lock{ channel_mutex };
|
||||||
peering_endpoint = endpoint;
|
peering_endpoint = endpoint;
|
||||||
}
|
}
|
||||||
|
|
||||||
nano::endpoint nano::transport::channel::get_peering_endpoint () const
|
nano::endpoint nano::transport::channel::get_peering_endpoint () const
|
||||||
{
|
{
|
||||||
|
nano::unique_lock<nano::mutex> lock{ channel_mutex };
|
||||||
if (peering_endpoint)
|
if (peering_endpoint)
|
||||||
{
|
{
|
||||||
return *peering_endpoint;
|
return *peering_endpoint;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
lock.unlock ();
|
||||||
return get_endpoint ();
|
return get_endpoint ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue