We've got a homebrewed spinlock implementation in src/common/simple_spin.h/cc. It was written so we could use dout in global constructors (which prevent us from properly doing dynamic allocation on a pthread_spinlock), but we should look at at it again. Can we:
1) eliminate the use of dout in global constructors? (and thus the need for this)
2) do a better job with the busy loop, since nobody's quite sure about the timing on it?
3) hack up something so we only use this to do the initial dout pthread spinlock initialization?