Bumps [github.com/containerd/cgroups/v3](https://github.com/containerd/cgroups) from 3.0.2 to 3.0.3. - [Release notes](https://github.com/containerd/cgroups/releases) - [Commits](https://github.com/containerd/cgroups/compare/v3.0.2...v3.0.3) --- updated-dependencies: - dependency-name: github.com/containerd/cgroups/v3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
		
			
				
	
	
		
			32 lines
		
	
	
		
			812 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			812 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package internal
 | 
						|
 | 
						|
import (
 | 
						|
	"bytes"
 | 
						|
	"sync"
 | 
						|
)
 | 
						|
 | 
						|
var bytesBufferPool = sync.Pool{
 | 
						|
	New: func() interface{} {
 | 
						|
		return new(bytes.Buffer)
 | 
						|
	},
 | 
						|
}
 | 
						|
 | 
						|
// NewBuffer retrieves a [bytes.Buffer] from a pool an re-initialises it.
 | 
						|
//
 | 
						|
// The returned buffer should be passed to [PutBuffer].
 | 
						|
func NewBuffer(buf []byte) *bytes.Buffer {
 | 
						|
	wr := bytesBufferPool.Get().(*bytes.Buffer)
 | 
						|
	// Reinitialize the Buffer with a new backing slice since it is returned to
 | 
						|
	// the caller by wr.Bytes() below. Pooling is faster despite calling
 | 
						|
	// NewBuffer. The pooled alloc is still reused, it only needs to be zeroed.
 | 
						|
	*wr = *bytes.NewBuffer(buf)
 | 
						|
	return wr
 | 
						|
}
 | 
						|
 | 
						|
// PutBuffer releases a buffer to the pool.
 | 
						|
func PutBuffer(buf *bytes.Buffer) {
 | 
						|
	// Release reference to the backing buffer.
 | 
						|
	*buf = *bytes.NewBuffer(nil)
 | 
						|
	bytesBufferPool.Put(buf)
 | 
						|
}
 |