From 86d85eca406874a33f12e0a2e6d325c34eccd455 Mon Sep 17 00:00:00 2001 From: Vladimir Barsukov Date: Sun, 19 Nov 2023 11:07:13 +0200 Subject: [PATCH] fix --- zdb/pool.go | 16 ++++++++++++---- zdebug/zdebug.go | 4 ++-- zquit/pool.go | 4 ++-- zquit/zquit.go | 4 ++-- 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/zdb/pool.go b/zdb/pool.go index 8b75bc1..bf2417c 100644 --- a/zdb/pool.go +++ b/zdb/pool.go @@ -2,7 +2,6 @@ package zdb import ( "context" - "errors" "fmt" "github.com/jackc/pgx/v5/pgxpool" "log" @@ -86,13 +85,22 @@ func (d *Pool) WithContext(ctx context.Context) *Pool { } func (d *Pool) WithTimeout(dur time.Duration) *Pool { - ctx, _ := context.WithTimeout(d.ctx, dur) + ctx, cancel := context.WithTimeout(d.ctx, dur) + + go func() { + time.Sleep(dur) + cancel() + }() return d.WithContext(ctx) } func (d *Pool) WithDeadline(dur time.Time) *Pool { - ctx, _ := context.WithDeadline(d.ctx, dur) + ctx, cancel := context.WithDeadline(d.ctx, dur) + go func() { + time.Sleep(time.Since(dur)) + cancel() + }() return d.WithContext(ctx) } @@ -113,7 +121,7 @@ func (d *Pool) NewConn(mode connMode, pgConnString string) error { q.Index = len(d.SrvAsync) d.SrvAsync = append(d.SrvAsync, q) default: - return errors.New("unknown mode") + panic("unknown mode") } return err diff --git a/zdebug/zdebug.go b/zdebug/zdebug.go index b3fc3e1..20686a8 100644 --- a/zdebug/zdebug.go +++ b/zdebug/zdebug.go @@ -14,14 +14,14 @@ func NewMonitor(secs int) { var memMax uint64 for { - <-time.After(time.Duration(secs) * time.Second) + time.Sleep(time.Duration(secs) * time.Second) runtime.ReadMemStats(&rtm) mem := ((rtm.HeapIdle - rtm.HeapReleased) + (rtm.Alloc + rtm.HeapInuse)) / 1e6 memMax = max(memMax, mem) - fmt.Printf("Z_DEBUG: MEM: %v; MEM_MAX: %v; OBJ: %v, GO: %v, GC: %v\n", + fmt.Printf("ZDEBUG: MEM: %v; MEM_MAX: %v; OBJ: %v, GO: %v, GC: %v\n", mem, memMax, (rtm.Mallocs-rtm.Frees)/1e3, diff --git a/zquit/pool.go b/zquit/pool.go index 7543284..1123124 100644 --- a/zquit/pool.go +++ b/zquit/pool.go @@ -32,13 +32,13 @@ func (p *Pool) Add(z *ZQuit) { func (p *Pool) PrintStat(sec int) { go func() { for { - <-time.After(time.Second * time.Duration(sec)) + time.Sleep(time.Second * time.Duration(sec)) s := "" for _, i := range p.items { s += i.GetStat() + "; " } - log.Printf("Z_QUIT: %s", s) + log.Printf("ZQUIT: %s", s) } }() } diff --git a/zquit/zquit.go b/zquit/zquit.go index 2ad5b99..5775b83 100644 --- a/zquit/zquit.go +++ b/zquit/zquit.go @@ -101,8 +101,8 @@ func (q *ZQuit) GetStat() string { func (q *ZQuit) PrintStat(sec int) { go func() { for { - <-time.After(time.Second * time.Duration(sec)) - log.Printf("Z_QUIT: %s", q.GetStat()) + time.Sleep(time.Second * time.Duration(sec)) + log.Printf("ZQUIT: %s", q.GetStat()) } }() } -- GitLab