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