Move out of inline routines since the body is relatively large and to keep the disassembly clean. Have spinlocks store the holder cpu + 1 instead of just 1. Add an appropriate barrier to the release.