Are non-blocking sockets really needed, given Ada's tasking abilities?