Handle local storage race conditions better (#3177)

* Make local_storage_compare_and_set take Option for old_value

* Adapt srml/im-online to API changes

* Bump version

* Bump version again

* Replace match
This commit is contained in:
Michael Müller
2019-07-26 01:42:40 +02:00
committed by Gavin Wood
parent af914e9f40
commit 23fba990ba
11 changed files with 118 additions and 33 deletions
+2 -2
View File
@@ -209,14 +209,14 @@ impl offchain::Externalities for TestOffchainExt {
&mut self,
kind: StorageKind,
key: &[u8],
old_value: &[u8],
old_value: Option<&[u8]>,
new_value: &[u8]
) -> bool {
let mut state = self.0.write();
match kind {
StorageKind::LOCAL => &mut state.local_storage,
StorageKind::PERSISTENT => &mut state.persistent_storage,
}.compare_and_set(b"", key, Some(old_value), new_value)
}.compare_and_set(b"", key, old_value, new_value)
}
fn local_storage_get(&mut self, kind: StorageKind, key: &[u8]) -> Option<Vec<u8>> {