package safebool import "sync" /* Потокобезопасный булевый признак. */ // SafeBool -- потокобезопасный булевый признак type SafeBool struct { val bool block sync.RWMutex } // NewSafeBool -- возвращает новый *SafeBool func NewSafeBool() *SafeBool { return &SafeBool{} } // Получ -- возвращает хранимое значение булевого признака func (sf *SafeBool) Получ() bool { sf.block.RLock() defer sf.block.RUnlock() return sf.val } // Уст -- устанавливает хранимое значение булевого признака func (sf *SafeBool) Уст() { sf.block.Lock() defer sf.block.Unlock() sf.val = true } // Сброс -- сбарсывает хранимое значение булевого признака func (sf *SafeBool) Сброс() { sf.block.Lock() defer sf.block.Unlock() sf.val = false }