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