| 1234567891011121314151617181920212223242526272829303132 |
- package safestring
- import "sync"
- /*
- Потокобезопасная строка
- */
- // SafeString -- потокобезопасная строка
- type SafeString struct {
- val string
- block sync.RWMutex
- }
- // NewSafeString -- возвращает новый *SafeString
- func NewSafeString() *SafeString {
- return &SafeString{}
- }
- // Get -- возвращает хранимое значение
- func (sf *SafeString) Get() string {
- sf.block.RLock()
- defer sf.block.RUnlock()
- return sf.val
- }
- // Set -- устанавливает хранимое значение
- func (sf *SafeString) Set(strVal string) {
- sf.block.Lock()
- defer sf.block.Unlock()
- sf.val = strVal
- }
|