package static_param import ( "fmt" "sync" "wartank/pkg/types" ) /* Исходник предоставляет единичный статичный параметр статистики танка. Проверяет присваиваемые значения. Потокобезопасно. */ // СтатПарам -- потокобезопасный параметр танка type СтатПарам struct { имя string // Имя параметра знач int // Значение параметра блок sync.RWMutex } // НовСтатПарам -- возвращает новый *СтатПарам func НовСтатПарам(имя string) (*СтатПарам, error) { if имя == "" { return nil, fmt.Errorf("НовСтатПарам(): name is empty") } сам := &СтатПарам{ имя: имя, } _ = types.ИСтатПарам(сам) return сам, nil } // Уст -- устанавливает значение параметра func (сам *СтатПарам) Уст(val int) { сам.блок.Lock() defer сам.блок.Unlock() сам.знач = val } // Получ -- значение хранимого параметра func (сам *СтатПарам) Получ() int { сам.блок.RLock() defer сам.блок.RUnlock() return сам.знач } // Имя -- возвращает имя хранимого параметра func (сам *СтатПарам) Имя() string { сам.блок.RLock() defer сам.блок.RUnlock() return сам.имя }