so it's not async. will this break the assumption of callers of this function?
@wuhengzhix