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