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)
|
||||
{
|
||||
nano::lock_guard<nano::mutex> lock{ channel_mutex };
|
||||
peering_endpoint = endpoint;
|
||||
}
|
||||
|
||||
nano::endpoint nano::transport::channel::get_peering_endpoint () const
|
||||
{
|
||||
nano::unique_lock<nano::mutex> lock{ channel_mutex };
|
||||
if (peering_endpoint)
|
||||
{
|
||||
return *peering_endpoint;
|
||||
}
|
||||
else
|
||||
{
|
||||
lock.unlock ();
|
||||
return get_endpoint ();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue