Spinlocks
Suppose you have an instruction tsl, test and set lock
- Takes an address as an argument
- Checks the value stored at that address
- 0 means critical section is empty
- 1 means critical section is full
- if value is 0, set it to 1 and return 0
- if value is 1, leave it at 1 and return 1
Both the test and the set happen together, atomically