But this is on purpose, I don't want to let others call execute() outside of AsyncSemaphore