This only happens on Linux but works fine on Darwin and when criterion is used to do clt.read , however when a standard for loop is used all works fine
- Example contains a main function which in-turn calls two for the most part identical functions
let _ = clt2svc_without_criterion();
let _ = clt2svc_with_criterion();
- Both functions have the same objective
- create and connect two non-blocking TcpStream’s to each other
- clt TcpStream, will connect from main thread
- svc TcpStream, will be accepted from Svc-Thread thread
- svc TcpSteam will continually write to the socket untill it gets an io::std::Error
- clt TcpStream will continually read N number of times and then issue clt.shutdown(Shutdown::Both)
- The only difference between two functions is one uses criterion to measure the read speed and the other a standard for loop. However the one that uses criterion variant hangs as the svc TcpStrem gets ErrorKind::WouldBlock instead of ErrorKind::BrokenPipe
- create and connect two non-blocking TcpStream’s to each other