| 757 | } |
| 758 | |
| 759 | func (vlog *valueLog) decrIteratorCount() error { |
| 760 | num := atomic.AddInt32(&vlog.numActiveIterators, -1) |
| 761 | if num != 0 { |
| 762 | return nil |
| 763 | } |
| 764 | |
| 765 | vlog.filesLock.Lock() |
| 766 | lfs := make([]*logFile, 0, len(vlog.filesToBeDeleted)) |
| 767 | for _, id := range vlog.filesToBeDeleted { |
| 768 | lfs = append(lfs, vlog.filesMap[id]) |
| 769 | delete(vlog.filesMap, id) |
| 770 | } |
| 771 | vlog.filesToBeDeleted = nil |
| 772 | vlog.filesLock.Unlock() |
| 773 | |
| 774 | for _, lf := range lfs { |
| 775 | if err := vlog.deleteLogFile(lf); err != nil { |
| 776 | return err |
| 777 | } |
| 778 | } |
| 779 | return nil |
| 780 | } |
| 781 | |
| 782 | func (vlog *valueLog) deleteLogFile(lf *logFile) error { |
| 783 | if lf == nil { |