Add 1ms delay as a workaround for "faster" requests than facade update
in osrm-routed
This commit is contained in:
parent
fce8d72895
commit
710ba20acc
@ -99,6 +99,7 @@ class OSRMDatastoreLoader extends OSRMBaseLoader {
|
||||
if (err) return callback(err);
|
||||
if (!this.osrmIsRunning()) this.launch(callback);
|
||||
else {
|
||||
// some osrm-routed output prior this line can appear in the prevoius log file
|
||||
this.scope.setupOutputLog(this.child, fs.createWriteStream(this.scope.scenarioLogFile, {'flags': 'a'}));
|
||||
callback();
|
||||
}
|
||||
@ -108,7 +109,10 @@ class OSRMDatastoreLoader extends OSRMBaseLoader {
|
||||
loadData (callback) {
|
||||
this.scope.runBin('osrm-datastore', this.inputFile, this.scope.environment, (err) => {
|
||||
if (err) return callback(new Error('*** osrm-datastore exited with ' + err.code + ': ' + err));
|
||||
callback();
|
||||
// in case of false positive results with a dummy 1ms delay an stdout monitor
|
||||
// this.child.stdout.on('data', facade_monitor) must be added and wait for
|
||||
// "updated facade to region" in stdout
|
||||
setTimeout(callback, 1);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -65,10 +65,10 @@ class DataWatchdog
|
||||
{
|
||||
if (timestamp != current->timestamp)
|
||||
{
|
||||
util::Log() << "updating facade to region " << storage::regionToString(current->region)
|
||||
<< " with timestamp " << current->timestamp;
|
||||
facade = std::make_shared<datafacade::SharedMemoryDataFacade>(current->region);
|
||||
timestamp = current->timestamp;
|
||||
util::Log() << "updated facade to region " << storage::regionToString(current->region)
|
||||
<< " with timestamp " << current->timestamp;
|
||||
}
|
||||
|
||||
barrier.region_condition.wait(current_region_lock);
|
||||
|
@ -100,6 +100,8 @@ int Storage::Run()
|
||||
storage::SharedMemory::Remove(next_region);
|
||||
}
|
||||
|
||||
util::Log() << "Loading data into " << regionToString(next_region) << " timestamp " << next_timestamp;
|
||||
|
||||
// Populate a memory layout into stack memory
|
||||
DataLayout layout;
|
||||
PopulateLayout(layout);
|
||||
|
Loading…
Reference in New Issue
Block a user