From afe120a87f7348c9973920ade460af485c79fd5f Mon Sep 17 00:00:00 2001 From: Jairus Date: Tue, 15 Sep 2026 23:12:57 -0400 Subject: [PATCH 1/7] refactor: migrate to Wago public API --- go.mod | 4 ++-- go.sum | 8 ++++---- integration_test.go | 12 +++++------- 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/go.mod b/go.mod index 211ca79..d6d3924 100644 --- a/go.mod +++ b/go.mod @@ -2,6 +2,6 @@ module github.com/JairusSW/pool go 1.24.0 -require github.com/wago-org/wago v0.0.0-20260812144524-1c58c9862d25 +require github.com/wago-org/wago v0.1.0-beta.8.0.20260916025321-6f31d3371e1d -require github.com/wago-org/workers v0.0.0-20260812144603-4a90ff25d5e4 +require github.com/wago-org/workers v0.1.1-0.20260916030119-0241baf72ee3 diff --git a/go.sum b/go.sum index 3720533..8284725 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,4 @@ -github.com/wago-org/wago v0.0.0-20260812144524-1c58c9862d25 h1:gopNHvaUaDSzmW2Hfd32r8dOwwzYUHH3ph1L/IuhJUA= -github.com/wago-org/wago v0.0.0-20260812144524-1c58c9862d25/go.mod h1:6XmxI3S5qJ+YAzObyXjC6FmxHtbLhBBxrglzix42zl8= -github.com/wago-org/workers v0.0.0-20260812144603-4a90ff25d5e4 h1:Z7S9Hj+JZ8OdNWLgzRjUQOvPIEQpEFNtyRSoHnUYOlI= -github.com/wago-org/workers v0.0.0-20260812144603-4a90ff25d5e4/go.mod h1:FLuFlQ7n+DNP0VNAZuGc702UIxC/JfLuhyuacMQNFp8= +github.com/wago-org/wago v0.1.0-beta.8.0.20260916025321-6f31d3371e1d h1:JjS2jdRwwGLo4g7brBkYdnQMLijuDrO+3qXOJ/mB8fI= +github.com/wago-org/wago v0.1.0-beta.8.0.20260916025321-6f31d3371e1d/go.mod h1:q0pPiPF6W6GZpTXbWwy+GT+r19KHSzB/gRcPUVHyntI= +github.com/wago-org/workers v0.1.1-0.20260916030119-0241baf72ee3 h1:kamgRjheyM1bRieeNgQHWxGvBYZWnsm5LnQHPaCZe9I= +github.com/wago-org/workers v0.1.1-0.20260916030119-0241baf72ee3/go.mod h1:7c8Aal47yVzBVFQU+CyhyyjSZzWnZ1H6UstMwQz0sfM= diff --git a/integration_test.go b/integration_test.go index 256d589..67a26a7 100644 --- a/integration_test.go +++ b/integration_test.go @@ -11,7 +11,7 @@ import ( "github.com/wago-org/wago" wagoplugin "github.com/wago-org/wago/plugin" - "github.com/wago-org/wago/tests/wasmtest" + "github.com/wago-org/wago/tests/support/wasmtest" "github.com/wago-org/workers" ) @@ -118,11 +118,9 @@ func driverProvider(d *driver) wago.PluginProvider { if err != nil { return err } - module, err := imports.Module("env") - if err != nil { - return err - } - module.Func("run", d.run).Params(wago.ValI32, wago.ValI32, wago.ValI32).Results(wago.ValI32) + imports.HostFunc("env", "run", func(caller wago.Caller, call wago.HostCall) { + d.run(caller, call.ParamSlots(), call.ResultSlots()) + }).Params(wago.ValI32, wago.ValI32, wago.ValI32).Results(wago.ValI32) return reg.Lifecycle(wago.PluginLifecycle{ Start: d.start, Stop: func(context.Context) error { @@ -374,7 +372,7 @@ func TestContractGraphRoutesAndScales(t *testing.T) { waitFor(t, "tasks", func() bool { return r.d.messages() == 20 }) r.invoke(t, "scale") waitFor(t, "scale", func() bool { return r.stats(t).Live == 4 }) - if err := r.rt.Close(); err != nil { + if err := r.rt.CloseContext(context.Background()); err != nil { t.Fatal(err) } if err := r.d.poolRef.With(func(Service) error { return nil }); !errors.Is(err, wago.ErrPermissionDenied) { From b4b52dec35d17896552785dbb6ddaa517843e686 Mon Sep 17 00:00:00 2001 From: JairusSW Date: Tue, 15 Sep 2026 23:41:25 -0400 Subject: [PATCH 2/7] chore: pin final Wago API revision --- go.mod | 2 +- go.sum | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index d6d3924..f36e59a 100644 --- a/go.mod +++ b/go.mod @@ -2,6 +2,6 @@ module github.com/JairusSW/pool go 1.24.0 -require github.com/wago-org/wago v0.1.0-beta.8.0.20260916025321-6f31d3371e1d +require github.com/wago-org/wago v0.1.0-beta.8.0.20260916033857-43d658fadbdf require github.com/wago-org/workers v0.1.1-0.20260916030119-0241baf72ee3 diff --git a/go.sum b/go.sum index 8284725..0fcd152 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,6 @@ github.com/wago-org/wago v0.1.0-beta.8.0.20260916025321-6f31d3371e1d h1:JjS2jdRwwGLo4g7brBkYdnQMLijuDrO+3qXOJ/mB8fI= github.com/wago-org/wago v0.1.0-beta.8.0.20260916025321-6f31d3371e1d/go.mod h1:q0pPiPF6W6GZpTXbWwy+GT+r19KHSzB/gRcPUVHyntI= +github.com/wago-org/wago v0.1.0-beta.8.0.20260916033857-43d658fadbdf h1:xRaURj1fd21y7cU1hXQCF6H/y4LoE9+xv0wQpScSzuo= +github.com/wago-org/wago v0.1.0-beta.8.0.20260916033857-43d658fadbdf/go.mod h1:q0pPiPF6W6GZpTXbWwy+GT+r19KHSzB/gRcPUVHyntI= github.com/wago-org/workers v0.1.1-0.20260916030119-0241baf72ee3 h1:kamgRjheyM1bRieeNgQHWxGvBYZWnsm5LnQHPaCZe9I= github.com/wago-org/workers v0.1.1-0.20260916030119-0241baf72ee3/go.mod h1:7c8Aal47yVzBVFQU+CyhyyjSZzWnZ1H6UstMwQz0sfM= From c005fb25f4c5d70587956287df6f4d5a100eefa7 Mon Sep 17 00:00:00 2001 From: JairusSW Date: Wed, 16 Sep 2026 00:26:03 -0400 Subject: [PATCH 3/7] chore: pin final Wago API refactor head --- go.mod | 2 +- go.sum | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index f36e59a..9162f92 100644 --- a/go.mod +++ b/go.mod @@ -2,6 +2,6 @@ module github.com/JairusSW/pool go 1.24.0 -require github.com/wago-org/wago v0.1.0-beta.8.0.20260916033857-43d658fadbdf +require github.com/wago-org/wago v0.1.0-beta.8.0.20260916041951-35866fb07970 require github.com/wago-org/workers v0.1.1-0.20260916030119-0241baf72ee3 diff --git a/go.sum b/go.sum index 0fcd152..a19ade1 100644 --- a/go.sum +++ b/go.sum @@ -1,6 +1,4 @@ -github.com/wago-org/wago v0.1.0-beta.8.0.20260916025321-6f31d3371e1d h1:JjS2jdRwwGLo4g7brBkYdnQMLijuDrO+3qXOJ/mB8fI= -github.com/wago-org/wago v0.1.0-beta.8.0.20260916025321-6f31d3371e1d/go.mod h1:q0pPiPF6W6GZpTXbWwy+GT+r19KHSzB/gRcPUVHyntI= -github.com/wago-org/wago v0.1.0-beta.8.0.20260916033857-43d658fadbdf h1:xRaURj1fd21y7cU1hXQCF6H/y4LoE9+xv0wQpScSzuo= -github.com/wago-org/wago v0.1.0-beta.8.0.20260916033857-43d658fadbdf/go.mod h1:q0pPiPF6W6GZpTXbWwy+GT+r19KHSzB/gRcPUVHyntI= +github.com/wago-org/wago v0.1.0-beta.8.0.20260916041951-35866fb07970 h1:m0CVK79+M5tL3oTDO0uY6XHi200jTmMAhwRlTs4DAuM= +github.com/wago-org/wago v0.1.0-beta.8.0.20260916041951-35866fb07970/go.mod h1:q0pPiPF6W6GZpTXbWwy+GT+r19KHSzB/gRcPUVHyntI= github.com/wago-org/workers v0.1.1-0.20260916030119-0241baf72ee3 h1:kamgRjheyM1bRieeNgQHWxGvBYZWnsm5LnQHPaCZe9I= github.com/wago-org/workers v0.1.1-0.20260916030119-0241baf72ee3/go.mod h1:7c8Aal47yVzBVFQU+CyhyyjSZzWnZ1H6UstMwQz0sfM= From 34aae6120f5af65667ef61ba00231462ac2cf8dd Mon Sep 17 00:00:00 2001 From: JairusSW Date: Wed, 16 Sep 2026 00:45:21 -0400 Subject: [PATCH 4/7] chore: repin final Wago API refactor --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 9162f92..b845912 100644 --- a/go.mod +++ b/go.mod @@ -2,6 +2,6 @@ module github.com/JairusSW/pool go 1.24.0 -require github.com/wago-org/wago v0.1.0-beta.8.0.20260916041951-35866fb07970 +require github.com/wago-org/wago v0.1.0-beta.8.0.20260916044221-1ed62e8dbb48 -require github.com/wago-org/workers v0.1.1-0.20260916030119-0241baf72ee3 +require github.com/wago-org/workers v0.1.1-0.20260916044404-d9e85d3a4fac diff --git a/go.sum b/go.sum index a19ade1..7df63a6 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,4 @@ -github.com/wago-org/wago v0.1.0-beta.8.0.20260916041951-35866fb07970 h1:m0CVK79+M5tL3oTDO0uY6XHi200jTmMAhwRlTs4DAuM= -github.com/wago-org/wago v0.1.0-beta.8.0.20260916041951-35866fb07970/go.mod h1:q0pPiPF6W6GZpTXbWwy+GT+r19KHSzB/gRcPUVHyntI= -github.com/wago-org/workers v0.1.1-0.20260916030119-0241baf72ee3 h1:kamgRjheyM1bRieeNgQHWxGvBYZWnsm5LnQHPaCZe9I= -github.com/wago-org/workers v0.1.1-0.20260916030119-0241baf72ee3/go.mod h1:7c8Aal47yVzBVFQU+CyhyyjSZzWnZ1H6UstMwQz0sfM= +github.com/wago-org/wago v0.1.0-beta.8.0.20260916044221-1ed62e8dbb48 h1:pHMgqdBUa/co7GWzZpe1PtkpQ1NSdiul1NPpGfx+fjY= +github.com/wago-org/wago v0.1.0-beta.8.0.20260916044221-1ed62e8dbb48/go.mod h1:q0pPiPF6W6GZpTXbWwy+GT+r19KHSzB/gRcPUVHyntI= +github.com/wago-org/workers v0.1.1-0.20260916044404-d9e85d3a4fac h1:Mc7dyhhgGK5mowcDg80ekadJD5bnFR9nnLVlfnqebhw= +github.com/wago-org/workers v0.1.1-0.20260916044404-d9e85d3a4fac/go.mod h1:n225vvDhUh3InubEHR3DQgoyAbnLYQNTX+FIp9d+aPo= From df575a00df610b8f146a9fa186163ad34dda5ec9 Mon Sep 17 00:00:00 2001 From: JairusSW Date: Wed, 16 Sep 2026 00:48:55 -0400 Subject: [PATCH 5/7] chore: pin final Wago API refactor head --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index b845912..468d0bd 100644 --- a/go.mod +++ b/go.mod @@ -2,6 +2,6 @@ module github.com/JairusSW/pool go 1.24.0 -require github.com/wago-org/wago v0.1.0-beta.8.0.20260916044221-1ed62e8dbb48 +require github.com/wago-org/wago v0.1.0-beta.8.0.20260916044641-e99947687116 -require github.com/wago-org/workers v0.1.1-0.20260916044404-d9e85d3a4fac +require github.com/wago-org/workers v0.1.1-0.20260916044713-4a873a230f5c diff --git a/go.sum b/go.sum index 7df63a6..b4eef8c 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,4 @@ -github.com/wago-org/wago v0.1.0-beta.8.0.20260916044221-1ed62e8dbb48 h1:pHMgqdBUa/co7GWzZpe1PtkpQ1NSdiul1NPpGfx+fjY= -github.com/wago-org/wago v0.1.0-beta.8.0.20260916044221-1ed62e8dbb48/go.mod h1:q0pPiPF6W6GZpTXbWwy+GT+r19KHSzB/gRcPUVHyntI= -github.com/wago-org/workers v0.1.1-0.20260916044404-d9e85d3a4fac h1:Mc7dyhhgGK5mowcDg80ekadJD5bnFR9nnLVlfnqebhw= -github.com/wago-org/workers v0.1.1-0.20260916044404-d9e85d3a4fac/go.mod h1:n225vvDhUh3InubEHR3DQgoyAbnLYQNTX+FIp9d+aPo= +github.com/wago-org/wago v0.1.0-beta.8.0.20260916044641-e99947687116 h1:0AgT2N3GaxZiyX8flgVdm7VtntDa0zrtDxuuinynKVQ= +github.com/wago-org/wago v0.1.0-beta.8.0.20260916044641-e99947687116/go.mod h1:q0pPiPF6W6GZpTXbWwy+GT+r19KHSzB/gRcPUVHyntI= +github.com/wago-org/workers v0.1.1-0.20260916044713-4a873a230f5c h1:Qk9EESzObtRrWH9iWEFTxTCeUnNemC8MJEl7A69AVNQ= +github.com/wago-org/workers v0.1.1-0.20260916044713-4a873a230f5c/go.mod h1:HndnvH5UpZtCXYm3M6h8MrUn31S8AwG2l0a9OoXB6ss= From 71e30d7457b28526f4b3739b9bf2d48e6f179cde Mon Sep 17 00:00:00 2001 From: JairusSW Date: Wed, 16 Sep 2026 01:10:18 -0400 Subject: [PATCH 6/7] chore: pin final Wago API refactor head --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 468d0bd..5c6f58c 100644 --- a/go.mod +++ b/go.mod @@ -2,6 +2,6 @@ module github.com/JairusSW/pool go 1.24.0 -require github.com/wago-org/wago v0.1.0-beta.8.0.20260916044641-e99947687116 +require github.com/wago-org/wago v0.1.0-beta.8.0.20260916050830-c9ed2455acd9 -require github.com/wago-org/workers v0.1.1-0.20260916044713-4a873a230f5c +require github.com/wago-org/workers v0.1.1-0.20260916050909-fa9222c78f9d diff --git a/go.sum b/go.sum index b4eef8c..701190e 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,4 @@ -github.com/wago-org/wago v0.1.0-beta.8.0.20260916044641-e99947687116 h1:0AgT2N3GaxZiyX8flgVdm7VtntDa0zrtDxuuinynKVQ= -github.com/wago-org/wago v0.1.0-beta.8.0.20260916044641-e99947687116/go.mod h1:q0pPiPF6W6GZpTXbWwy+GT+r19KHSzB/gRcPUVHyntI= -github.com/wago-org/workers v0.1.1-0.20260916044713-4a873a230f5c h1:Qk9EESzObtRrWH9iWEFTxTCeUnNemC8MJEl7A69AVNQ= -github.com/wago-org/workers v0.1.1-0.20260916044713-4a873a230f5c/go.mod h1:HndnvH5UpZtCXYm3M6h8MrUn31S8AwG2l0a9OoXB6ss= +github.com/wago-org/wago v0.1.0-beta.8.0.20260916050830-c9ed2455acd9 h1:+/8b9bvAnyUZPG+YTvGpDwpAV+jpp6+bBBWOrr+8Xco= +github.com/wago-org/wago v0.1.0-beta.8.0.20260916050830-c9ed2455acd9/go.mod h1:q0pPiPF6W6GZpTXbWwy+GT+r19KHSzB/gRcPUVHyntI= +github.com/wago-org/workers v0.1.1-0.20260916050909-fa9222c78f9d h1:hx2oFfErXwEJE54E98xzIj0874SUrJL2LXi8EwkQkrQ= +github.com/wago-org/workers v0.1.1-0.20260916050909-fa9222c78f9d/go.mod h1:nFQYC2iT+rgsR2G60CF/NZm4flLcMLkYJoloAFFGztk= From 4ff18388110bdd7d8636ca06c994ae6fde5faae4 Mon Sep 17 00:00:00 2001 From: JairusSW Date: Wed, 16 Sep 2026 01:14:42 -0400 Subject: [PATCH 7/7] test: wait for runtime shutdown under load --- stress_test.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/stress_test.go b/stress_test.go index bbdbdbb..05c451a 100644 --- a/stress_test.go +++ b/stress_test.go @@ -1,6 +1,7 @@ package pool import ( + "context" "errors" "sync" "sync/atomic" @@ -294,10 +295,16 @@ func TestStressRuntimeCloseWhileBusy(t *testing.T) { } }() } - done := make(chan struct{}) - go func() { r.close(); close(done) }() + closeDone := make(chan error, 1) + go func() { + _ = r.in.Close() + closeDone <- r.rt.CloseContext(context.Background()) + }() select { - case <-done: + case err := <-closeDone: + if err != nil { + t.Fatalf("runtime close: %v", err) + } case <-time.After(10 * time.Second): stop.Store(true) wg.Wait()