mirror of
https://codeberg.org/scip/io-exporter.git
synced 2025-12-16 20:11:00 +01:00
add waitgroup for goroutine 1
This commit is contained in:
@@ -6,6 +6,7 @@ import (
|
||||
"io"
|
||||
"log/slog"
|
||||
"os"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"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
|
||||
func (exp *Exporter) RunIOchecks() {
|
||||
func (exp *Exporter) RunIOchecks() sync.WaitGroup {
|
||||
var wg sync.WaitGroup
|
||||
wg.Add(1)
|
||||
|
||||
go func() {
|
||||
for {
|
||||
var res_r, res_w Result
|
||||
@@ -60,6 +64,8 @@ func (exp *Exporter) RunIOchecks() {
|
||||
time.Sleep(time.Duration(exp.conf.Sleeptime) * time.Second)
|
||||
}
|
||||
}()
|
||||
|
||||
return wg
|
||||
}
|
||||
|
||||
// call an io measurement and collect time needed
|
||||
|
||||
@@ -31,7 +31,7 @@ func Run() {
|
||||
alloc := NewAlloc()
|
||||
exporter := NewExporter(conf, alloc, metrics)
|
||||
|
||||
exporter.RunIOchecks()
|
||||
wg := exporter.RunIOchecks()
|
||||
|
||||
http.Handle("/metrics", promhttp.HandlerFor(
|
||||
metrics.registry,
|
||||
@@ -49,6 +49,8 @@ func Run() {
|
||||
if err := http.ListenAndServe(fmt.Sprintf(":%d", conf.Port), nil); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
wg.Wait()
|
||||
}
|
||||
|
||||
func report(err error, fd *os.File) bool {
|
||||
|
||||
Reference in New Issue
Block a user