Skip to content

Commit

Permalink
fix: the cpuload 100% in case the tcpstream WouldBlock (#3029)
Browse files Browse the repository at this point in the history
* fix: the cpuload 100% in case the tcpstream WouldBlock

* extending the sleep on WouldBlock to all read/write

* rustfmt
  • Loading branch information
garyyu authored Sep 9, 2019
1 parent 7a07541 commit 4faac47
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions p2p/src/conn.rs
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,10 @@ macro_rules! try_break {
($inner:expr) => {
match $inner {
Ok(v) => Some(v),
Err(Error::Connection(ref e))
if e.kind() == io::ErrorKind::WouldBlock || e.kind() == io::ErrorKind::TimedOut =>
{
Err(Error::Connection(ref e)) if e.kind() == io::ErrorKind::TimedOut => None,
Err(Error::Connection(ref e)) if e.kind() == io::ErrorKind::WouldBlock => {
// to avoid the heavy polling which will consume CPU 100%
thread::sleep(Duration::from_millis(10));
None
}
Err(Error::Store(_))
Expand Down Expand Up @@ -375,7 +376,7 @@ where
})?;

let writer_thread = thread::Builder::new()
.name("peer_read".to_string())
.name("peer_write".to_string())
.spawn(move || {
let mut retry_send = Err(());
loop {
Expand All @@ -394,7 +395,7 @@ where
}

debug!(
"Shutting down reader connection with {}",
"Shutting down writer connection with {}",
writer
.peer_addr()
.map(|a| a.to_string())
Expand Down

0 comments on commit 4faac47

Please sign in to comment.