move listen_tcpv4 callback to an async thread