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