From 0aeba0a5db3bc3029ecc6e5b42b23cbedd52d079 Mon Sep 17 00:00:00 2001 From: Virgil Date: Fri, 3 Apr 2026 19:41:21 +0000 Subject: [PATCH] fix(scope): disable cgo finalizers after manual cleanup Co-Authored-By: Virgil --- buffer.go | 1 + scope.go | 1 + 2 files changed, 2 insertions(+) diff --git a/buffer.go b/buffer.go index eadfde0..88bafa6 100644 --- a/buffer.go +++ b/buffer.go @@ -71,6 +71,7 @@ func (b *Buffer) Free() { panic("cgo.Buffer.Free: double-free detected") } + runtime.SetFinalizer(b, nil) C.free(b.pointer) b.pointer = nil b.data = nil diff --git a/scope.go b/scope.go index 147deb9..2a9bbc9 100644 --- a/scope.go +++ b/scope.go @@ -81,6 +81,7 @@ func (s *Scope) FreeAll() { if !s.freed.CompareAndSwap(false, true) { panic("cgo.Scope.FreeAll: double-free detected") } + runtime.SetFinalizer(s, nil) s.lock.Lock() buffers := s.buffers