use io-poll instead of IO.select due to 1024 fd limit