package safe_int import "sync" /* Потокобезопасное целое */ // БезопЦелое -- потокобезопасное целое type БезопЦелое struct { знач int блок sync.RWMutex } // НовБезопЦелое -- возвращает новый *БезопЦелое func НовБезопЦелое() *БезопЦелое { return &БезопЦелое{} } // Получ -- возвращает хранимое значение func (sf *БезопЦелое) Получ() int { sf.блок.RLock() defer sf.блок.RUnlock() return sf.знач } // Уст -- устанавливает хранимое значение func (sf *БезопЦелое) Уст(val int) { sf.блок.Lock() defer sf.блок.Unlock() sf.знач = val }