Преглед изворни кода

SVI Изменение интерфейсов; 100.0%

SVI пре 1 година
родитељ
комит
adb85820ac

+ 5 - 0
kc/local_ctx/local_ctx.go

@@ -37,6 +37,11 @@ func NewLocalCtx(ctx context.Context) ILocalCtx {
 	return sf
 }
 
+// Ctx -- возвращает отменяемый контекст
+func (sf *LocalCtx) Ctx() context.Context {
+	return sf.ctx
+}
+
 // Size -- возвращает размер контекста
 func (sf *LocalCtx) Size() int {
 	sf.RLock()

+ 3 - 0
kc/local_ctx/local_ctx_test.go

@@ -68,6 +68,9 @@ func (sf *tester) newGood1() {
 	if lst := sf.ctx.SortedList(); lst == nil {
 		sf.t.Fatalf("newGood1(): lst==nil")
 	}
+	if ctx := sf.ctx.Ctx(); ctx == nil {
+		sf.t.Fatalf("newGood1(): ctx==nil")
+	}
 }
 
 // Нет контекста ядра

+ 1 - 1
krn/kbus/dict_topic_serve/dict_topic_serve.go

@@ -62,7 +62,7 @@ func (sf *dictServe) SendRequest(topic ATopic, binReq []byte) ([]byte, error) {
 		chErr  = make(chan error, 2)
 		binRes []byte
 	)
-	ctx, fnCancel := context.WithTimeout(sf.ctx.BaseCtx(), time.Millisecond*time.Duration(TimeoutDefault))
+	ctx, fnCancel := context.WithTimeout(sf.ctx.Ctx(), time.Millisecond*time.Duration(TimeoutDefault))
 	defer fnCancel()
 	fnCall := func() {
 		defer close(chErr)

+ 1 - 1
krn/kbus/kbus_base/kbus_base.go

@@ -47,7 +47,7 @@ func GetKernelBusBase() *KBusBase {
 		IsWork_:   safe_bool.NewSafeBool(),
 		dictSub:   dict_topic_sub.NewDictTopicSub(),
 		dictServe: dict_topic_serve.NewDictServe(),
-		ctx:       local_ctx.NewLocalCtx(ctx.BaseCtx()),
+		ctx:       local_ctx.NewLocalCtx(ctx.Ctx()),
 	}
 	Bus_.log = Bus_.ctx.Log()
 	go Bus_.close()

+ 1 - 1
krn/kbus/kbus_http/client_bus_http/client_bus_http.go

@@ -42,7 +42,7 @@ func NewClientBusHttp(url string) IBusClient {
 	urlLocal := os.Getenv("LOCAL_HTTP_URL")
 	Hassert(urlLocal != "", "NewClientBusHttp(): env LOCAL_HTTP_URL not set")
 	sf := &ClientBusHttp{
-		ctx:       local_ctx.NewLocalCtx(kCtx.BaseCtx()),
+		ctx:       local_ctx.NewLocalCtx(kCtx.Ctx()),
 		bus:       kbus_http.GetKernelBusHttp(),
 		isWork:    safe_bool.NewSafeBool(),
 		urlRemote: strings.TrimSuffix(url, "/"),

+ 0 - 5
krn/kctx/kctx.go

@@ -70,11 +70,6 @@ func (sf *kCtx) CtxBg() context.Context {
 	return sf.ctxBg
 }
 
-// BaseCtx -- возвращает контекст ядра
-func (sf *kCtx) BaseCtx() context.Context {
-	return sf.ctx
-}
-
 // Cancel -- отменяет контекст ядра
 func (sf *kCtx) Cancel() {
 	sf.fnCancel()

+ 2 - 2
krn/kctx/kctx_test.go

@@ -25,8 +25,8 @@ func (sf *tester) new() {
 	if ctx := ctx.CtxBg(); ctx != kernCtx.ctxBg {
 		sf.t.Fatalf("new(): ctx!=ctxBg")
 	}
-	if ctx := ctx.BaseCtx(); ctx != kernCtx.ctx {
-		sf.t.Fatalf("new(): ctx!=kernel.ctx")
+	if ctx := ctx.Ctx(); ctx == nil {
+		sf.t.Fatalf("new(): ctx==nil")
 	}
 	ctx.Set("counter", 5, "test_counter")
 	if ctx.Get("counter") == nil {

+ 2 - 2
krn/kmodule/kmodule.go

@@ -32,7 +32,7 @@ func NewKernelModule(name AModuleName) IKernelModule {
 	kCtx := kctx.GetKernelCtx()
 	sf := &kModule{
 		kCtx:      kCtx,
-		ctx:       local_ctx.NewLocalCtx(kCtx.BaseCtx()),
+		ctx:       local_ctx.NewLocalCtx(kCtx.Ctx()),
 		name:      name,
 		bus:       kbus_local.GetKernelBusLocal(),
 		timePhase: safe_int.NewSafeInt(),
@@ -110,7 +110,7 @@ func (sf *kModule) sigLive() {
 	}
 	for {
 		select {
-		case <-sf.kCtx.BaseCtx().Done():
+		case <-sf.kCtx.Ctx().Done():
 			return
 		default:
 			fnPhase()

+ 1 - 1
krn/kmonolit/kmonolit.go

@@ -37,7 +37,7 @@ func GetMonolit(name string) IKernelMonolit {
 	kCtx := kctx.GetKernelCtx()
 	sf := &kMonolit{
 		kCtx:    kCtx,
-		ctx:     local_ctx.NewLocalCtx(kCtx.BaseCtx()),
+		ctx:     local_ctx.NewLocalCtx(kCtx.Ctx()),
 		name:    name,
 		dict:    map[AModuleName]IKernelModule{},
 		isWork:  safe_bool.NewSafeBool(),

+ 1 - 1
krn/kserv_http/kserv_http.go

@@ -68,7 +68,7 @@ func GetKernelServHttp() IKernelServerHttp {
 	}
 	sf := &kServHttp{
 		kCtx:     ctx,
-		ctx:      local_ctx.NewLocalCtx(ctx.BaseCtx()),
+		ctx:      local_ctx.NewLocalCtx(ctx.Ctx()),
 		strUrl:   strUrl,
 		fiberApp: fiber.New(confFiber),
 		isWork:   safe_bool.NewSafeBool(),

+ 2 - 2
krn/kstore_kv/kstore_kv.go

@@ -49,7 +49,7 @@ func GetKernelStore() IKernelStoreKv {
 	ctx := kctx.GetKernelCtx()
 	sf := &kStoreKv{
 		kCtx:   ctx,
-		ctx:    local_ctx.NewLocalCtx(ctx.BaseCtx()),
+		ctx:    local_ctx.NewLocalCtx(ctx.Ctx()),
 		wg:     ctx.Wg(),
 		isWork: safe_bool.NewSafeBool(),
 	}
@@ -157,7 +157,7 @@ func (sf *kStoreKv) clean() {
 	chRun <- 1
 	for {
 		select {
-		case <-sf.kCtx.BaseCtx().Done(): // надо прекратить работу
+		case <-sf.kCtx.Ctx().Done(): // надо прекратить работу
 			return
 		case <-chRun: // Пора поработать
 			fnClean()

+ 0 - 2
krn/ktypes/ikernel_ctx.go

@@ -8,8 +8,6 @@ type IKernelCtx interface {
 	ILocalCtx
 	// CtxBg -- возвращает неотменяемый контекст ядра
 	CtxBg() context.Context
-	// BaseCtx -- возвращает отменяемы контекст ядра
-	BaseCtx() context.Context
 	// Wg -- возвращает ожидатель потоков
 	Wg() IKernelWg
 	// Keeper -- возвращает системный сторож

+ 4 - 0
krn/ktypes/ilocal_ctx.go

@@ -1,6 +1,8 @@
 package ktypes
 
 import (
+	"context"
+
 	. "gitp78su.ipnodns.ru/svi/kern/krn/kalias"
 )
 
@@ -38,4 +40,6 @@ type ILocalCtx interface {
 	Done()
 	// Log -- возвращает буфер сообщений
 	Log() ILogBuf
+	// Ctx -- возвращает хранимый контекст
+	Ctx() context.Context
 }