Initial commit

This was @mdmarek comment from the gist.   but you need a `defer t.mu.Unlock()` here.