Fixed shared cache race on import (#4194)

* Fixed is_best race on import

* Take import lock outside of backend

* Actually take the lock
This commit is contained in:
Arkadiy Paronyan
2019-11-25 13:38:37 +01:00
committed by Gavin Wood
parent 50b84a6438
commit d56d6163ef
8 changed files with 56 additions and 48 deletions
+12 -3
View File
@@ -96,7 +96,10 @@ where
None,
)
.map(|(result, _, _)| result)?;
self.backend.destroy_state(state)?;
{
let _lock = self.backend.get_import_lock().read();
self.backend.destroy_state(state)?;
}
Ok(return_data.into_encoded())
}
@@ -179,7 +182,10 @@ where
)
.map(|(result, _, _)| result)
}?;
self.backend.destroy_state(state)?;
{
let _lock = self.backend.get_import_lock().read();
self.backend.destroy_state(state)?;
}
Ok(result)
}
@@ -194,7 +200,10 @@ where
None,
);
let version = self.executor.runtime_version(&mut ext);
self.backend.destroy_state(state)?;
{
let _lock = self.backend.get_import_lock().read();
self.backend.destroy_state(state)?;
}
version.ok_or(error::Error::VersionInvalid.into())
}