func (fc *FCache) manufacture(ctx context.Context, key Key, factory Factory) {
	// Invoke the factory
	ent := factory(ctx, key)

	// Lock the cache
	fc.Lock()
	defer fc.Unlock()

	// Insert the object into the appropriate indexes
	fc.insert(ent)
}
// manufacture calls the index factory function.  It MUST be called as
// a goroutine.  It will invoke the factory, then lock the mutex and
// complete the appropriate entry or entries in the cache.
manufacture calls the index factory function.  It MUST be called as
a goroutine.  It will invoke the factory, then lock the mutex and
complete the appropriate entry or entries in the cache.
// manufacture calls the index factory function . It MUST be called as // a goroutine . It will invoke the factory then lock the mutex and // complete the appropriate entry or entries in the cache .
func (fc *FCache) manufacture(ctx context.Context, key Key, factory Factory) {
	ent := factory(ctx, key)
	fc.Lock()
	defer fc.Unlock()
	fc.insert(ent)
}
func ( fc * FCache ) manufacture ( ctx context . Context , key Key , factory Factory ) { ent := factory ( ctx , key ) fc . Lock ( ) defer fc . Unlock ( ) fc . insert ( ent ) }
manufacture calls the index factory function.
manufacture calls the index factory function .
// Invoke the factory // Lock the cache // Insert the object into the appropriate indexes