func _casObj(obj *heap.Object, fields []interface{}, offset int64, expected, newVal *heap.Object) bool { // todo obj.LockState() defer obj.UnlockState() current := _getObj(fields, offset) if current == expected { fields[offset] = newVal return true } else { return false } }