mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-02-02 15:14:14 +00:00
don't notify before wait
This commit is contained in:
parent
7ba4af7e2e
commit
32466e3804
@ -658,23 +658,17 @@ namespace client
|
|||||||
if (!leaseSet)
|
if (!leaseSet)
|
||||||
{
|
{
|
||||||
std::unique_lock<std::mutex> l(newDataReceivedMutex);
|
std::unique_lock<std::mutex> l(newDataReceivedMutex);
|
||||||
if (i2p::client::context.GetSharedLocalDestination ()->RequestDestination (m_Ident,
|
i2p::client::context.GetSharedLocalDestination ()->RequestDestination (m_Ident,
|
||||||
[&newDataReceived, &leaseSet](std::shared_ptr<i2p::data::LeaseSet> ls)
|
[&newDataReceived, &leaseSet, &newDataReceivedMutex](std::shared_ptr<i2p::data::LeaseSet> ls)
|
||||||
{
|
{
|
||||||
leaseSet = ls;
|
leaseSet = ls;
|
||||||
|
std::unique_lock<std::mutex> l1(newDataReceivedMutex);
|
||||||
newDataReceived.notify_all ();
|
newDataReceived.notify_all ();
|
||||||
}))
|
});
|
||||||
|
if (newDataReceived.wait_for (l, std::chrono::seconds (SUBSCRIPTION_REQUEST_TIMEOUT)) == std::cv_status::timeout)
|
||||||
{
|
{
|
||||||
if (newDataReceived.wait_for (l, std::chrono::seconds (SUBSCRIPTION_REQUEST_TIMEOUT)) == std::cv_status::timeout)
|
LogPrint (eLogError, "Addressbook: Subscription LeaseSet request timeout expired");
|
||||||
{
|
i2p::client::context.GetSharedLocalDestination ()->CancelDestinationRequest (m_Ident, false); // don't notify, because we know it already
|
||||||
LogPrint (eLogError, "Addressbook: Subscription LeaseSet request timeout expired");
|
|
||||||
i2p::client::context.GetSharedLocalDestination ()->CancelDestinationRequest (m_Ident, false); // don't notify, because we know it already
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
LogPrint (eLogError, "Addressbook: Destination is not ready");
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -479,7 +479,8 @@ namespace client
|
|||||||
{
|
{
|
||||||
if (!m_Pool || !IsReady ())
|
if (!m_Pool || !IsReady ())
|
||||||
{
|
{
|
||||||
if (requestComplete) requestComplete (nullptr);
|
if (requestComplete)
|
||||||
|
m_Service.post ([requestComplete](void){requestComplete (nullptr);});
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
m_Service.post (std::bind (&LeaseSetDestination::RequestLeaseSet, shared_from_this (), dest, requestComplete));
|
m_Service.post (std::bind (&LeaseSetDestination::RequestLeaseSet, shared_from_this (), dest, requestComplete));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user