@Gargron Does that... work? You're calling Close() on the ImageOps as soon as you alloc it in the sync.Pool: https://github.com/tootsuite/gamo/blob/master/gamo.go#L50

If you _must_ have Close() called on that (if the sync.Pool decides to bin it rather than adding it back to the pool), you might need to use runtime.SetFinalizer.

If you need to do more debugging, I'd suggest the handlers from net/http/pprof. Be careful with it - it registers them under /debug/pprof/ by default and you don't want those exposed on the internet.