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