exit gracefully, net::socket::accept_non_blocking