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