Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
a6a9e5c
create parallel tasks extension
NikVolf Mar 14, 2020
fdc73e2
make type system happy
NikVolf Feb 22, 2020
00cfe23
basic externalities
NikVolf Feb 22, 2020
0d5f934
test for dynamic extensions
NikVolf Feb 22, 2020
0b9d1d8
batching test
NikVolf Feb 22, 2020
cd0b459
remove premature verify_batch
NikVolf Feb 22, 2020
62d9dca
shnschnorrkel batch
NikVolf Feb 22, 2020
5ec6d6b
alter test
NikVolf Feb 22, 2020
8fba16a
shnschnorrkel test
NikVolf Feb 22, 2020
a25d32b
executive batching
NikVolf Feb 22, 2020
69d4e82
some docs
NikVolf Feb 22, 2020
31b2942
also multi/any signatgures
NikVolf Feb 22, 2020
3c54bc3
error propagation
NikVolf Feb 23, 2020
d8169a8
styling
NikVolf Feb 23, 2020
d01a788
make verification extension optional
NikVolf Feb 23, 2020
044126a
experimental ed25519 parallelization
NikVolf Feb 26, 2020
e7bc120
some merge fallout
NikVolf Mar 14, 2020
8c25cf0
utilize task executor
NikVolf Mar 14, 2020
3ba39cf
merge fallout
NikVolf Mar 16, 2020
4170f13
utilize task executor more
NikVolf Mar 16, 2020
6f29854
another merge fallout
NikVolf Mar 16, 2020
1d4f716
Merge remote-tracking branch 'origin/master' into nv-dynamic-extensions
NikVolf Mar 16, 2020
2a358e3
feature-gate sp-io
NikVolf Mar 17, 2020
20ae706
arrange toml
NikVolf Mar 17, 2020
fd56193
Merge remote-tracking branch 'origin/master' into nv-dynamic-extensions
NikVolf Mar 25, 2020
d90cf62
fix no-std
NikVolf Mar 25, 2020
b477ef9
sr25519 batching and refactoring
NikVolf Mar 25, 2020
1de6a2c
add docs
NikVolf Mar 25, 2020
ded9f5c
fix name
NikVolf Mar 25, 2020
1482b96
add newline
NikVolf Mar 25, 2020
5eb30aa
fix block import test
NikVolf Mar 25, 2020
46267fb
Merge remote-tracking branch 'origin/master' into nv-dynamic-extensions
NikVolf Mar 25, 2020
6b83175
long sr25519 test
NikVolf Mar 26, 2020
f8e67ef
blocking instead of parking
NikVolf Mar 26, 2020
83b73f7
move everything in crypto
NikVolf Mar 26, 2020
e16798e
return batch_verify to check :)
NikVolf Mar 26, 2020
0c54540
use condvars
NikVolf Mar 26, 2020
b1847a3
Merge remote-tracking branch 'origin/master' into nv-dynamic-extensions
NikVolf Mar 26, 2020
e439fed
Merge remote-tracking branch 'origin/master' into nv-dynamic-extensions
NikVolf Mar 26, 2020
ffe2250
use multi-threaded executor for benches
NikVolf Mar 27, 2020
5285c2b
don't call via host interface
NikVolf Mar 27, 2020
e210b4b
try no spawning
NikVolf Mar 27, 2020
0701c19
add true
NikVolf Mar 27, 2020
86bdcbe
cleanup
NikVolf Apr 1, 2020
1abe308
Merge remote-tracking branch 'origin/master' into nv-dynamic-extensio…
NikVolf Apr 1, 2020
63f9df3
straighten batching
NikVolf Apr 3, 2020
76a0689
Merge remote-tracking branch 'origin/master' into nv-dynamic-extensions
NikVolf Apr 3, 2020
4f835c6
remove signature check from this test (?)
NikVolf Apr 3, 2020
4d55306
remove now pointless test
NikVolf Apr 3, 2020
bbdec24
remove another now useless test
NikVolf Apr 3, 2020
bfafa25
fix warnings
NikVolf Apr 6, 2020
58e2cb1
Merge remote-tracking branch 'origin/master' into nv-dynamic-extensions
NikVolf Apr 6, 2020
65e86a8
Merge remote-tracking branch 'origin/master' into nv-dynamic-extensions
NikVolf Apr 6, 2020
70d3803
Revert "remove another now useless test"
NikVolf Apr 7, 2020
3eb55ff
rethink the sp-io-part
NikVolf Apr 7, 2020
87cf296
Revert "remove now pointless test"
NikVolf Apr 7, 2020
de66ee1
fix wording
NikVolf Apr 7, 2020
a593928
add wording
NikVolf Apr 7, 2020
52e5ada
add todo and fix
NikVolf Apr 7, 2020
baf967b
return check and fix
NikVolf Apr 7, 2020
4d5888e
add logging in sp-io
NikVolf Apr 8, 2020
394497d
Merge remote-tracking branch 'origin/master' into nv-dynamic-extensions
NikVolf Apr 8, 2020
d015c60
Update primitives/io/src/batch_verifier.rs
NikVolf Apr 9, 2020
c2c9d2d
address review and use std condvar
NikVolf Apr 9, 2020
25c1fc1
Merge remote-tracking branch 'origin/master' into nv-dynamic-extensions
NikVolf Apr 9, 2020
6ae4dc5
account for early exit
NikVolf Apr 13, 2020
b85e037
address reivew
NikVolf Apr 13, 2020
d68aebb
Merge remote-tracking branch 'origin/master' into nv-dynamic-extensions
NikVolf Apr 14, 2020
ab32c60
address review
NikVolf Apr 14, 2020
ba8ce75
more suggestions
NikVolf Apr 14, 2020
0db24f4
add docs for batch verification
NikVolf Apr 14, 2020
b35c3aa
remove unused
NikVolf Apr 14, 2020
3d10f24
more review suggestions
NikVolf Apr 14, 2020
34499e4
move to sp-runtime
NikVolf Apr 14, 2020
d522248
add expects
NikVolf Apr 14, 2020
0d9d09f
remove blocks
NikVolf Apr 14, 2020
6c4f6b5
use entry
NikVolf Apr 14, 2020
48fb7d6
Update primitives/io/src/batch_verifier.rs
NikVolf Apr 15, 2020
7f3ebae
Update primitives/externalities/src/extensions.rs
NikVolf Apr 15, 2020
766ec69
update overlooked note
NikVolf Apr 15, 2020
49e9c67
Merge remote-tracking branch 'origin/master' into nv-dynamic-extensions
NikVolf Apr 15, 2020
a3979f2
remove stupid return
NikVolf Apr 15, 2020
b4cb58f
Update primitives/io/src/lib.rs
NikVolf Apr 15, 2020
234ec99
Update primitives/io/src/lib.rs
NikVolf Apr 15, 2020
1db62b0
fix wording
NikVolf Apr 15, 2020
f7097d6
bump spec_version
NikVolf Apr 15, 2020
e823c63
Merge remote-tracking branch 'origin/master' into nv-dynamic-extensions
NikVolf Apr 15, 2020
056515e
Merge branch 'master' into nv-dynamic-extensions
NikVolf Apr 16, 2020
86d7efc
Merge remote-tracking branch 'origin/master' into nv-dynamic-extensions
NikVolf Apr 16, 2020
0e2b455
Merge branch 'nv-dynamic-extensions' of github.com:paritytech/substra…
NikVolf Apr 16, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
use condvars
  • Loading branch information
NikVolf committed Mar 26, 2020
commit 0c54540a3206d234ce1d37bf076793e4b7b2b58d
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions primitives/io/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ sp-trie = { version = "2.0.0-alpha.5", optional = true, path = "../../primitives
sp-externalities = { version = "0.8.0-alpha.5", optional = true, path = "../externalities" }
log = { version = "0.4.8", optional = true }
futures = { version = "0.3.1", features = ["thread-pool"], optional = true }
parking_lot = { version = "0.10.0", optional = true }

[features]
default = ["std"]
Expand All @@ -39,6 +40,7 @@ std = [
"sp-wasm-interface/std",
"log",
"futures",
"parking_lot",
]

# These two features are used for `no_std` builds for the environments which already provides
Expand Down
19 changes: 16 additions & 3 deletions primitives/io/src/batch_verifier.rs
Original file line number Diff line number Diff line change
Expand Up @@ -124,13 +124,26 @@ impl BatchVerifier {
/// Verify all previously pushed signatures since last call and return
/// aggregated result.
pub fn verify_and_clear(&mut self) -> bool {
use parking_lot::{Mutex, Condvar};

if self.sr25519_items.len() > 0 {
self.spawn_sr25519_verification()
}

futures::executor::block_on(
futures::future::join_all(self.pending_tasks.drain(..))
);
let pending = std::mem::replace(&mut self.pending_tasks, vec![]);

if pending.len() > 0 {
let pair = Arc::new((Mutex::new(()), Condvar::new()));
let pair_clone = pair.clone();
self.scheduler.spawn_obj(FutureObj::new(async move {
futures::future::join_all(pending).await;
pair_clone.1.notify_one();
}.boxed())).expect("Scheduler should not fail");

let (mtx, cond_var) = &*pair;
let mut mtx = mtx.lock();
cond_var.wait(&mut mtx);
}

if self.invalid.load(AtomicOrdering::Relaxed) {
self.invalid.store(false, AtomicOrdering::Relaxed);
Expand Down