add waitgroup for goroutine 1

This commit is contained in:
2025-10-23 12:39:09 +02:00
parent 99222b1cae
commit 62f5b51be8
2 changed files with 10 additions and 2 deletions

View File

@@ -6,6 +6,7 @@ import (
"io" "io"
"log/slog" "log/slog"
"os" "os"
"sync"
"time" "time"
"github.com/ncw/directio" "github.com/ncw/directio"
@@ -32,7 +33,10 @@ func NewExporter(conf *Config, alloc *Alloc, metrics *Metrics) *Exporter {
} }
// starts the primary go-routine, which will run the io checks for ever // starts the primary go-routine, which will run the io checks for ever
func (exp *Exporter) RunIOchecks() { func (exp *Exporter) RunIOchecks() sync.WaitGroup {
var wg sync.WaitGroup
wg.Add(1)
go func() { go func() {
for { for {
var res_r, res_w Result var res_r, res_w Result
@@ -60,6 +64,8 @@ func (exp *Exporter) RunIOchecks() {
time.Sleep(time.Duration(exp.conf.Sleeptime) * time.Second) time.Sleep(time.Duration(exp.conf.Sleeptime) * time.Second)
} }
}() }()
return wg
} }
// call an io measurement and collect time needed // call an io measurement and collect time needed

View File

@@ -31,7 +31,7 @@ func Run() {
alloc := NewAlloc() alloc := NewAlloc()
exporter := NewExporter(conf, alloc, metrics) exporter := NewExporter(conf, alloc, metrics)
exporter.RunIOchecks() wg := exporter.RunIOchecks()
http.Handle("/metrics", promhttp.HandlerFor( http.Handle("/metrics", promhttp.HandlerFor(
metrics.registry, metrics.registry,
@@ -49,6 +49,8 @@ func Run() {
if err := http.ListenAndServe(fmt.Sprintf(":%d", conf.Port), nil); err != nil { if err := http.ListenAndServe(fmt.Sprintf(":%d", conf.Port), nil); err != nil {
log.Fatal(err) log.Fatal(err)
} }
wg.Wait()
} }
func report(err error, fd *os.File) bool { func report(err error, fd *os.File) bool {