feat(multiplexer): Allow fine-grained control of concurrency strategy (#106)
This commit is contained in:
parent
07fb2ca016
commit
e4784f444d
23 changed files with 822 additions and 559 deletions
|
|
@ -5,7 +5,7 @@ use pallas::network::{
|
|||
handshake::{n2n::VersionTable, Initiator},
|
||||
run_agent, Point, MAINNET_MAGIC,
|
||||
},
|
||||
multiplexer::Multiplexer,
|
||||
multiplexer::{spawn_demuxer, spawn_muxer, use_channel, StdPlexer},
|
||||
};
|
||||
|
||||
use pallas::network::miniprotocols::blockfetch::{BatchClient, Observer};
|
||||
|
|
@ -30,11 +30,15 @@ fn main() {
|
|||
bearer.set_nodelay(true).unwrap();
|
||||
bearer.set_keepalive_ms(Some(30_000u32)).unwrap();
|
||||
|
||||
let mut muxer = Multiplexer::setup(bearer, &[0, 3]).unwrap();
|
||||
let mut plexer = StdPlexer::new(bearer);
|
||||
let mut channel0 = use_channel(&mut plexer, 0);
|
||||
let mut channel3 = use_channel(&mut plexer, 3);
|
||||
|
||||
spawn_muxer(plexer.muxer);
|
||||
spawn_demuxer(plexer.demuxer);
|
||||
|
||||
let mut hs_channel = muxer.use_channel(0);
|
||||
let versions = VersionTable::v4_and_above(MAINNET_MAGIC);
|
||||
let _last = run_agent(Initiator::initial(versions), &mut hs_channel).unwrap();
|
||||
let _last = run_agent(Initiator::initial(versions), &mut channel0).unwrap();
|
||||
|
||||
let range = (
|
||||
Point::Specific(
|
||||
|
|
@ -49,8 +53,7 @@ fn main() {
|
|||
),
|
||||
);
|
||||
|
||||
let mut bf_channel = muxer.use_channel(3);
|
||||
let bf = BatchClient::initial(range, BlockPrinter {});
|
||||
let bf_last = run_agent(bf, &mut bf_channel);
|
||||
let bf_last = run_agent(bf, &mut channel3);
|
||||
println!("{:?}", bf_last);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue