1. A method comprising: associating a mutual exclusion lock with a shared data item; and repeatedly providing ownership of the mutual exclusion lock to each of three or more processing agents that execute code operating on the shared data item in a sequential order so that each processing agent receives the ownership of the mutual exclusion lock from an assigned predecessor and the order of ownership of the mutual exclusion lock by the three or more processing agents is both predetermined and repeated, wherein the processing agents are execution threads, wherein providing includes enabling each thread as a current holder of the mutual exclusion lock to pass ownership of the mutual exclusion lock to a successor according to the sequential order, wherein enabling comprises using inter-thread signaling resources to signal to the successor that the successor owns the mutual exclusion lock, wherein the inter-thread signaling resources comprise status registers that store ownership status of the mutual exclusion lock for each of the execution threads.