code: func (d *DiskStorer) Clean() {
  	t := time.Now().UTC()
  
  	files, err := ioutil.ReadDir(d.folderPath)
  
  	if err != nil {
  		panic(err)
  	}
  
  	for _, file := range files {
  		tspec := times.Get(file)
  
  		// File is expired
  		if tspec.AccessTime().UTC().UTC().Add(d.maxAge).Before(t) {
  			filePath := path.Join(d.folderPath, file.Name())
  
  			d.mut.Lock()
  			_, err := os.Stat(filePath)
  			// If the file has been deleted manually from the server
  			// in between the time we read the directory and now, it will
  			// fail here with a ErrNotExist. If so, continue gracefully.
  			// It would be innefficient to hold a lock for the duration of
  			// the loop, so we only lock when we find an expired file.
  			if os.IsNotExist(err) {
  				d.mut.Unlock()
  				continue
  			} else if err != nil {
  				panic(err)
  			}
  
  			err = os.Remove(filePath)
  			d.mut.Unlock()
  			if err != nil {
  				panic(err)
  			}
  		}
  	}
  }
docs: // Clean checks all session files on disk to see if they are older than
  // maxAge by checking their access time. If it finds an expired session file
  // it will remove it from disk.