From e273e8dc6c9d2301838e60eaf3ae06bee39470c0 Mon Sep 17 00:00:00 2001 From: Max Hoffman Date: Sat, 14 Dec 2024 09:33:08 -0800 Subject: [PATCH] Return module to pool on regex.Close() --- regex.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/regex.go b/regex.go index 63e318a..d840f4b 100644 --- a/regex.go +++ b/regex.go @@ -364,6 +364,12 @@ func (pr *privateRegex) Close() (err error) { if pr == nil || pr.mod == nil { return nil } + defer func() { + modulePool.Put(pr.mod) + pr.mod = nil + runtime.SetFinalizer(pr, nil) + }() + err = pr.closeRegexPtrs() if nErr := pr.closeMatchPtr(); err == nil { err = nErr @@ -379,11 +385,6 @@ func (pr *privateRegex) Close() (err error) { err = nErr } } - if pr.mod != nil { - modulePool.Put(pr.mod) - pr.mod = nil - runtime.SetFinalizer(pr, nil) - } return err }