Use runtime.nanotime for duration tracking plus related restructuring
runtime.nanotime is significantly faster than time.Now. Use it unless build tags prevent usage of unsafe. Change LastUsedTime to LastUsedNanotime as a time.Time is no longer available. Add IdleDuration to make it more convenient to get the time a resource has been idle. Rename ReleaseIdle to ReleaseUnused to better indicate it is releasing the resource without using it rather than that it is releasing a resource acquired with AcquireAllIdle. Refactor tests of usage tracking to not be intermingled with AcquireAllIdle tests.
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
// +build !purego,!appengine,!js
|
||||
|
||||
// This file contains the implementation of nanotime using runtime.nanotime.
|
||||
|
||||
package puddle
|
||||
|
||||
import "unsafe"
|
||||
|
||||
var _ = unsafe.Sizeof(0)
|
||||
|
||||
//go:linkname nanotime runtime.nanotime
|
||||
func nanotime() int64
|
||||
Reference in New Issue
Block a user