Seems like we can use target_can_async_p() here instead of relying on a global variable.