code: func (ss *FileSubStore) Close() error {
  	ss.Lock()
  	if ss.closed {
  		ss.Unlock()
  		return nil
  	}
  
  	ss.closed = true
  
  	if ss.shrinkTimer != nil {
  		if ss.shrinkTimer.Stop() {
  			// If we can stop, timer callback won't fire,
  			// so we need to decrement the wait group.
  			ss.allDone.Done()
  		}
  	}
  	ss.Unlock()
  
  	// Wait on timers/callbacks
  	ss.allDone.Wait()
  
  	ss.Lock()
  	var err error
  	if ss.fm.remove(ss.file) {
  		if ss.file.handle != nil {
  			err = ss.flush()
  			err = util.CloseFile(err, ss.file.handle)
  		}
  	}
  	ss.Unlock()
  
  	return err
  }
docs: // Close closes this store