mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-04-27 11:17:49 +02:00
add NetDb::WaitForReady
This commit is contained in:
parent
fec49e5609
commit
10ffdb2766
2 changed files with 17 additions and 5 deletions
14
NetDb.cpp
14
NetDb.cpp
|
@ -23,7 +23,7 @@ namespace data
|
|||
{
|
||||
NetDb netdb;
|
||||
|
||||
NetDb::NetDb (): m_IsRunning (false), m_Thread (nullptr), m_Reseeder (nullptr), m_Storage("netDb", "r", "routerInfo-", "dat"), m_HiddenMode(false)
|
||||
NetDb::NetDb (): m_Ready(new std::promise<void>()), m_IsRunning (false), m_Thread (nullptr), m_Reseeder (nullptr), m_Storage("netDb", "r", "routerInfo-", "dat"), m_HiddenMode(false)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -38,13 +38,14 @@ namespace data
|
|||
m_Storage.SetPlace(i2p::fs::GetDataDir());
|
||||
m_Storage.Init(i2p::data::GetBase64SubstitutionTable(), 64);
|
||||
InitProfilesStorage ();
|
||||
m_Families.LoadCertificates ();
|
||||
m_Families.LoadCertificates ();
|
||||
Load ();
|
||||
if (m_RouterInfos.size () < 25) // reseed if # of router less than 50
|
||||
Reseed ();
|
||||
|
||||
m_IsRunning = true;
|
||||
m_Thread = new std::thread (std::bind (&NetDb::Run, this));
|
||||
m_Ready->set_value();
|
||||
}
|
||||
|
||||
void NetDb::Stop ()
|
||||
|
@ -68,7 +69,14 @@ namespace data
|
|||
m_Requests.Stop ();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void NetDb::WaitForReady()
|
||||
{
|
||||
m_Ready->get_future().wait();
|
||||
delete m_Ready;
|
||||
m_Ready = nullptr;
|
||||
}
|
||||
|
||||
void NetDb::Run ()
|
||||
{
|
||||
uint32_t lastSave = 0, lastPublish = 0, lastExploratory = 0, lastManageRequest = 0, lastDestinationCleanup = 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue