code: func (b *RefCountBox) Alloc() (DB, error) {
  	b.Lock()
  	defer b.Unlock()
  
  	if b.db.DB == nil {
  		if b.DataPath == nil {
  			return DB{}, errorsp.WithStacks(ErrBoxDataPathNotSpecified)
  		}
  		var db DB
  		var err error
  		if b.OpenFunc == nil {
  			db, err = Open(b.DataPath(), 0644, nil)
  		} else {
  			db, err = b.OpenFunc(b.DataPath())
  		}
  		if err != nil {
  			return DB{}, errorsp.WithStacks(err)
  		}
  		b.db, b.count = db, 0
  	}
  	b.count++
  	return b.db, nil
  }
docs: // Alloc opens a DB if not openned yet. It adds a reference if already openned.