func (l *Lockie64) Lock() {
	for !atomic.CompareAndSwapInt64(&l.lock, 0, 1) {
		runtime.Gosched()
	}
}
Lock acquires a write-lock
package lockie
import (
	"runtime"
	"sync/atomic"
	"unsafe"
)
var i64b = is64bit()
func NewLockie() Lockie {
	if !i64b {
		return &Lockie32{}
	}
	return &Lockie64{}
}
type Lockie interface {
	Lock()
	Unlock()
}
func NewLockie64() *Lockie64 {
	return &Lockie64{}
}
type Lockie64 struct {
	lock int64
}