zio-nio
zio-nio copied to clipboard
isReachable is blocking fibers on thread pool
Hello, i had problem with parallelism on this code (it block my fibers on it, and CPU utilization was on ~1%)
def run: ZIO[Any, Throwable, Unit] = {
ipStream.mapZIOParUnordered(100000) {
for {
ipaddr <- InetAddress.byName(ip.toString)
r <- ipaddr.isReachable(10000)
_ <- if(r) Console.printLine(ip) else ZIO.none
} yield ()
}.runDrain
}
can you add new or edit current behavior of isReachable
def run: ZIO[Any, Throwable, Unit] = {
ipStream.mapZIOParUnordered(100000) {
ip =>
for {
ipaddr <- InetAddress.byName(ip.toString)
r <- ZIO.blocking(ipaddr.isReachable(10000))
_ <- if(r) Console.printLine(ip) else ZIO.none
} yield ()
}.runDrain
}