A task aware spinlock for rust