1. A method comprising: requesting access to a hardware accelerator by a user-privileged thread; granting access to the hardware accelerator to the user-privileged thread by a higher-privileged thread responsive to the requesting; communicating one or more commands to the hardware accelerator by the user-privileged thread responsive to the granting and without intervention by higher-privileged threads to perform the communicating, including without intervention by the higher-privileged thread that granted access to the hardware accelerator to the user-privileged thread, wherein the one or more commands cause the hardware accelerator to perform one or more tasks; checking a permission value correspond to the user-privileged thread, the checking performed by the user-privileged thread to ensure that the user-privileged thread retains permission to access the hardware accelerator, wherein the higher-privileged thread updates the permission value to revoke access by the user-privileged thread to the hardware accelerator; and communicating one or more additional commands to the hardware accelerator from the user-privileged thread responsive to detecting that the user-privileged thread retains permission to access the hardware accelerator.