package static_param import ( "sync" "wartank/pkg/kernel/logger" . "wartank/server/lev0/types" ) /* Исходник предоставляет единичный статичный параметр статистики танка. Проверяет присваиваемые значения. Потокобезопасно. */ // СтатПарам -- потокобезопасный параметр танка type СтатПарам struct { имя string // Имя параметра знач int // Значение параметра блок sync.RWMutex } // НовСтатПарам -- возвращает новый *СтатПарам func НовСтатПарам(имя string) *СтатПарам { лог := logger.НовЛоггер("СтатПарам") лог.Инфо("НовСтатПарам(%s)\n", имя) лог.Паника(имя == "", "НовСтатПарам(): имя параметра пустое\n") сам := &СтатПарам{ имя: имя, } _ = ИСтатПарам(сам) return сам } // Уст -- устанавливает значение параметра func (сам *СтатПарам) Уст(val int) { сам.блок.Lock() defer сам.блок.Unlock() сам.знач = val } // Получ -- значение хранимого параметра func (сам *СтатПарам) Получ() int { сам.блок.RLock() defer сам.блок.RUnlock() return сам.знач } // Имя -- возвращает имя хранимого параметра func (сам *СтатПарам) Имя() string { сам.блок.RLock() defer сам.блок.RUnlock() return сам.имя }