I copied the Mutex class, then changed the names to Spin.  I need spin to be 100% compatible with Mutex ... since 1) I am replacing Mutex with Spin in several places and 2) Spin becomes Mutex on platforms that do not have pthread_spinlock_t.