Функция, которая запускает процедуру, возвращает HostUptimeReporter
:
func NewHostUpTimeReporter(updateIntervalInSeconds int) HostUptimeReporter {
Возвращая целую структуру, подобную этой, возвращает копию структуры, так что программа и вызывающая сторона NewHostUpTimeReporter
смотрят на разные вещи,Вы хотите вернуть указатель, чтобы они обменивались данными:
// -----------------------------------------------------v
func NewHostUpTimeReporter(updateIntervalInSeconds int) *HostUptimeReporter {
instance := &HostUptimeReporter{updateInterval: updateIntervalInSeconds, shutdownSignal: make(chan bool), uptime:59}
// ---------^
...