durable write for nodedb

pull/707/head
Jeff Becker 5 years ago
parent 16e20a9e79
commit b0d850afb5
No known key found for this signature in database
GPG Key ID: F357B3B42F6F9B05

@ -129,8 +129,13 @@ llarp_nodedb::InsertAsync(llarp::RouterContact rc,
std::shared_ptr< llarp::Logic > logic, std::shared_ptr< llarp::Logic > logic,
std::function< void(void) > completionHandler) std::function< void(void) > completionHandler)
{ {
disk->addJob( const auto job = std::bind(&handle_async_insert_rc, this, rc, logic, completionHandler);
std::bind(&handle_async_insert_rc, this, rc, logic, completionHandler)); size_t tries = 10;
while((!disk->addJob(job)) && tries-- > 0)
std::this_thread::sleep_for(std::chrono::milliseconds(1));
// on fail do synchronous write
if(tries == 0)
Insert(rc);
} }
bool bool

@ -1534,8 +1534,17 @@ namespace llarp
LogInfo("RPC Caller to ", lokidRPCAddr, " started"); LogInfo("RPC Caller to ", lokidRPCAddr, " started");
} }
cryptoworker->start(); if(!cryptoworker->start())
disk->start(); {
LogError("crypto worker failed to start");
return false;
}
if(!disk->start())
{
LogError("disk worker failed to start");
return false;
}
for(const auto &rc : bootstrapRCList) for(const auto &rc : bootstrapRCList)
{ {

Loading…
Cancel
Save