mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-07 16:38:01 +00:00
proposer: guard all provisioner data work with timeout (#2026)
This commit is contained in:
@@ -141,20 +141,23 @@ where
|
||||
let mut overseer = self.overseer.clone();
|
||||
let parent_header_hash = self.parent_header_hash.clone();
|
||||
|
||||
let (sender, receiver) = futures::channel::oneshot::channel();
|
||||
let pid = async {
|
||||
let (sender, receiver) = futures::channel::oneshot::channel();
|
||||
overseer.wait_for_activation(parent_header_hash, sender).await;
|
||||
receiver.await.map_err(|_| Error::ClosedChannelAwaitingActivation)??;
|
||||
|
||||
overseer.wait_for_activation(parent_header_hash, sender).await;
|
||||
receiver.await.map_err(|_| Error::ClosedChannelAwaitingActivation)??;
|
||||
let (sender, receiver) = futures::channel::oneshot::channel();
|
||||
overseer.send_msg(AllMessages::Provisioner(
|
||||
ProvisionerMessage::RequestInherentData(parent_header_hash, sender),
|
||||
)).await;
|
||||
|
||||
let (sender, receiver) = futures::channel::oneshot::channel();
|
||||
overseer.send_msg(AllMessages::Provisioner(
|
||||
ProvisionerMessage::RequestInherentData(parent_header_hash, sender),
|
||||
)).await;
|
||||
receiver.await.map_err(|_| Error::ClosedChannelAwaitingInherentData)
|
||||
};
|
||||
|
||||
let mut timeout = futures_timer::Delay::new(PROPOSE_TIMEOUT).fuse();
|
||||
|
||||
select! {
|
||||
pid = receiver.fuse() => pid.map_err(|_| Error::ClosedChannelAwaitingInherentData),
|
||||
pid = pid.fuse() => pid,
|
||||
_ = timeout => Err(Error::Timeout),
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user