@@ -18,9 +18,11 @@ use crate::{
1818
1919use std:: sync:: Arc ;
2020
21+ const MINE_ANSWER_CHANNEL_CAPACITY : usize = 20 ;
22+
2123pub struct PoraService {
2224 mine_context_receiver : broadcast:: Receiver < MineContextMessage > ,
23- mine_answer_sender : mpsc:: UnboundedSender < AnswerWithoutProof > ,
25+ mine_answer_sender : mpsc:: Sender < AnswerWithoutProof > ,
2426 msg_recv : broadcast:: Receiver < MinerMessage > ,
2527 loader : Arc < dyn PoraLoader > ,
2628
@@ -123,9 +125,9 @@ impl PoraService {
123125 loader : Arc < dyn PoraLoader > ,
124126 config : & MinerConfig ,
125127 miner_id : H256 ,
126- ) -> mpsc:: UnboundedReceiver < AnswerWithoutProof > {
128+ ) -> mpsc:: Receiver < AnswerWithoutProof > {
127129 let ( mine_answer_sender, mine_answer_receiver) =
128- mpsc:: unbounded_channel :: < AnswerWithoutProof > ( ) ;
130+ mpsc:: channel :: < AnswerWithoutProof > ( MINE_ANSWER_CHANNEL_CAPACITY ) ;
129131 let mine_range = MineRangeConfig {
130132 start_position : Some ( 0 ) ,
131133 end_position : Some ( u64:: MAX ) ,
@@ -218,7 +220,7 @@ impl PoraService {
218220
219221 if let Some ( answer) = miner. batch_iteration( nonce, self . iter_batch) . await {
220222 info!( "Hit Pora answer {:?}" , answer) ;
221- if self . mine_answer_sender. send( answer) . is_err( ) {
223+ if self . mine_answer_sender. send( answer) . await . is_err( ) {
222224 warn!( "Mine submitter channel closed" ) ;
223225 }
224226 } else if cpu_percent < 100 {
0 commit comments