added sync.Spinlock