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 (err) return callback(err);
|
||||||
if (!this.osrmIsRunning()) this.launch(callback);
|
if (!this.osrmIsRunning()) this.launch(callback);
|
||||||
else {
|
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'}));
|
this.scope.setupOutputLog(this.child, fs.createWriteStream(this.scope.scenarioLogFile, {'flags': 'a'}));
|
||||||
callback();
|
callback();
|
||||||
}
|
}
|
||||||
@ -108,7 +109,10 @@ class OSRMDatastoreLoader extends OSRMBaseLoader {
|
|||||||
loadData (callback) {
|
loadData (callback) {
|
||||||
this.scope.runBin('osrm-datastore', this.inputFile, this.scope.environment, (err) => {
|
this.scope.runBin('osrm-datastore', this.inputFile, this.scope.environment, (err) => {
|
||||||
if (err) return callback(new Error('*** osrm-datastore exited with ' + err.code + ': ' + 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)
|
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);
|
facade = std::make_shared<datafacade::SharedMemoryDataFacade>(current->region);
|
||||||
timestamp = current->timestamp;
|
timestamp = current->timestamp;
|
||||||
|
util::Log() << "updated facade to region " << storage::regionToString(current->region)
|
||||||
|
<< " with timestamp " << current->timestamp;
|
||||||
}
|
}
|
||||||
|
|
||||||
barrier.region_condition.wait(current_region_lock);
|
barrier.region_condition.wait(current_region_lock);
|
||||||
|
@ -100,6 +100,8 @@ int Storage::Run()
|
|||||||
storage::SharedMemory::Remove(next_region);
|
storage::SharedMemory::Remove(next_region);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
util::Log() << "Loading data into " << regionToString(next_region) << " timestamp " << next_timestamp;
|
||||||
|
|
||||||
// Populate a memory layout into stack memory
|
// Populate a memory layout into stack memory
|
||||||
DataLayout layout;
|
DataLayout layout;
|
||||||
PopulateLayout(layout);
|
PopulateLayout(layout);
|
||||||
|
Loading…
Reference in New Issue
Block a user