pool.go 345 B

12345678910111213141516171819
  1. package schema
  2. import (
  3. "reflect"
  4. "sync"
  5. )
  6. // sync pools
  7. var (
  8. normalPool sync.Map
  9. poolInitializer = func(reflectType reflect.Type) FieldNewValuePool {
  10. v, _ := normalPool.LoadOrStore(reflectType, &sync.Pool{
  11. New: func() interface{} {
  12. return reflect.New(reflectType).Interface()
  13. },
  14. })
  15. return v.(FieldNewValuePool)
  16. }
  17. )