diff --git a/pcre.go b/pcre.go index 32d2ad3..e6a4f28 100644 --- a/pcre.go +++ b/pcre.go @@ -666,9 +666,10 @@ func (r *Regexp) SetCallout(fn func(cb *CalloutBlock) int32) error { return x } - // Prevent callout functions from being GC'd r.calloutMtx.Lock() defer r.calloutMtx.Unlock() + + // Prevent callout function from being GC'd r.callout = &cfn ret := lib.Xpcre2_set_callout_8(r.tls, r.mctx, *(*uintptr)(unsafe.Pointer(&cfn)), 0)