1
0
mirror of https://github.com/ManyakRus/starter.git synced 2026-06-21 07:19:20 +02:00
Files
starter/postgres_sqlx/postgres_sqlx_waitgroup.go
T
2025-12-17 13:54:36 +03:00

36 lines
1.2 KiB
Go

package postgres_sqlx
import (
"golang.org/x/net/context"
"sync"
)
// ctx_Connect, cancelCtxFunc - контекст для одного соединения, при отмене контекста соединение закроется
var ctx_Connect, cancelCtxFunc = context.WithCancel(context.Background())
// waitGroup_Connect - группа ожидания завершения всех частей программы
var waitGroup_Connect = new(sync.WaitGroup)
// lockWaitGroup_Connect - гарантирует получение WGMain с учётом многопоточности
var lockWaitGroup_Connect = &sync.RWMutex{}
// SetWaitGroup_Connect - присваивает внешний WaitGroup
func SetWaitGroup_Connect(wg *sync.WaitGroup) {
lockWaitGroup_Connect.RLock()
defer lockWaitGroup_Connect.RUnlock()
waitGroup_Connect = wg
}
// GetWaitGroup_Connect - возвращает группу ожидания завершения всех частей программы
func GetWaitGroup_Connect() *sync.WaitGroup {
lockWaitGroup_Connect.Lock()
defer lockWaitGroup_Connect.Unlock()
if waitGroup_Connect == nil {
waitGroup_Connect = &sync.WaitGroup{}
}
return waitGroup_Connect
}