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