| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- 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()
- сам.знач = знач
- }
|