Browse Source

don't notify before wait

pull/599/head
orignal 8 years ago
parent
commit
32466e3804
  1. 14
      AddressBook.cpp
  2. 3
      Destination.cpp

14
AddressBook.cpp

@ -658,13 +658,13 @@ namespace client @@ -658,13 +658,13 @@ namespace client
if (!leaseSet)
{
std::unique_lock<std::mutex> l(newDataReceivedMutex);
if (i2p::client::context.GetSharedLocalDestination ()->RequestDestination (m_Ident,
[&newDataReceived, &leaseSet](std::shared_ptr<i2p::data::LeaseSet> ls)
i2p::client::context.GetSharedLocalDestination ()->RequestDestination (m_Ident,
[&newDataReceived, &leaseSet, &newDataReceivedMutex](std::shared_ptr<i2p::data::LeaseSet> ls)
{
leaseSet = ls;
std::unique_lock<std::mutex> l1(newDataReceivedMutex);
newDataReceived.notify_all ();
}))
{
});
if (newDataReceived.wait_for (l, std::chrono::seconds (SUBSCRIPTION_REQUEST_TIMEOUT)) == std::cv_status::timeout)
{
LogPrint (eLogError, "Addressbook: Subscription LeaseSet request timeout expired");
@ -672,12 +672,6 @@ namespace client @@ -672,12 +672,6 @@ namespace client
return false;
}
}
else
{
LogPrint (eLogError, "Addressbook: Destination is not ready");
return false;
}
}
if (!leaseSet) {
/* still no leaseset found */
LogPrint (eLogError, "Addressbook: LeaseSet for address ", url.host, " not found");

3
Destination.cpp

@ -479,7 +479,8 @@ namespace client @@ -479,7 +479,8 @@ namespace client
{
if (!m_Pool || !IsReady ())
{
if (requestComplete) requestComplete (nullptr);
if (requestComplete)
m_Service.post ([requestComplete](void){requestComplete (nullptr);});
return false;
}
m_Service.post (std::bind (&LeaseSetDestination::RequestLeaseSet, shared_from_this (), dest, requestComplete));

Loading…
Cancel
Save