mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 15:47:58 +00:00
[companion] Fix request-response protocols backpressure mechanism (#7276)
* Replace request-response incoming requests queue with `async-channel`
* Fix unused imports
* Fix channel type in tests
* Fix channel type in tests (part 2)
* Fix unused imports
* update lockfile for {"substrate"}
---------
Co-authored-by: parity-processbot <>
This commit is contained in:
@@ -16,10 +16,7 @@
|
||||
|
||||
use std::marker::PhantomData;
|
||||
|
||||
use futures::{
|
||||
channel::{mpsc, oneshot},
|
||||
StreamExt,
|
||||
};
|
||||
use futures::{channel::oneshot, StreamExt};
|
||||
|
||||
use parity_scale_codec::{Decode, Encode};
|
||||
|
||||
@@ -208,7 +205,7 @@ pub struct OutgoingResponse<Response> {
|
||||
///
|
||||
/// Takes care of decoding and handling of invalid encoded requests.
|
||||
pub struct IncomingRequestReceiver<Req> {
|
||||
raw: mpsc::Receiver<netconfig::IncomingRequest>,
|
||||
raw: async_channel::Receiver<netconfig::IncomingRequest>,
|
||||
phantom: PhantomData<Req>,
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,6 @@
|
||||
|
||||
use std::{collections::HashMap, time::Duration, u64};
|
||||
|
||||
use futures::channel::mpsc;
|
||||
use polkadot_primitives::{MAX_CODE_SIZE, MAX_POV_SIZE};
|
||||
use strum::{EnumIter, IntoEnumIterator};
|
||||
|
||||
@@ -144,8 +143,8 @@ impl Protocol {
|
||||
pub fn get_config(
|
||||
self,
|
||||
req_protocol_names: &ReqProtocolNames,
|
||||
) -> (mpsc::Receiver<network::IncomingRequest>, RequestResponseConfig) {
|
||||
let (tx, rx) = mpsc::channel(self.get_channel_size());
|
||||
) -> (async_channel::Receiver<network::IncomingRequest>, RequestResponseConfig) {
|
||||
let (tx, rx) = async_channel::bounded(self.get_channel_size());
|
||||
let cfg = self.create_config(req_protocol_names, Some(tx));
|
||||
(rx, cfg)
|
||||
}
|
||||
@@ -153,7 +152,7 @@ impl Protocol {
|
||||
fn create_config(
|
||||
self,
|
||||
req_protocol_names: &ReqProtocolNames,
|
||||
tx: Option<mpsc::Sender<network::IncomingRequest>>,
|
||||
tx: Option<async_channel::Sender<network::IncomingRequest>>,
|
||||
) -> RequestResponseConfig {
|
||||
let name = req_protocol_names.get_name(self);
|
||||
let fallback_names = self.get_fallback_names();
|
||||
|
||||
Reference in New Issue
Block a user