-------------------------------------------------------- startOrReuseFile either creates a new file or reuses the file from the last/current footer.
()
| 252 | // startOrReuseFile either creates a new file or reuses the file from |
| 253 | // the last/current footer. |
| 254 | func (s *Store) startOrReuseFile() (fref *FileRef, file File, err error) { |
| 255 | s.m.Lock() |
| 256 | defer s.m.Unlock() |
| 257 | |
| 258 | if s.footer != nil { |
| 259 | slocs, _ := s.footer.segmentLocs() |
| 260 | defer s.footer.DecRef() |
| 261 | |
| 262 | if len(slocs) > 0 { |
| 263 | fref := slocs[0].mref.fref |
| 264 | file := fref.AddRef() |
| 265 | |
| 266 | return fref, file, nil |
| 267 | } |
| 268 | } |
| 269 | |
| 270 | return s.startFileLOCKED() |
| 271 | } |
| 272 | |
| 273 | func (s *Store) startFileLOCKED() (*FileRef, File, error) { |
| 274 | fname, file, err := s.createNextFileLOCKED() |
no test coverage detected