Replace async with packaged_task, because ~future() is blocking