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