diff options
Diffstat (limited to 'weed/filesys/dirty_page.go')
| -rw-r--r-- | weed/filesys/dirty_page.go | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/weed/filesys/dirty_page.go b/weed/filesys/dirty_page.go index feaf8945b..a200050c4 100644 --- a/weed/filesys/dirty_page.go +++ b/weed/filesys/dirty_page.go @@ -10,13 +10,14 @@ import ( ) type ContinuousDirtyPages struct { - intervals *ContinuousIntervals - f *File - writeWaitGroup sync.WaitGroup - chunkSaveErrChan chan error - lock sync.Mutex - collection string - replication string + intervals *ContinuousIntervals + f *File + writeWaitGroup sync.WaitGroup + chunkSaveErrChan chan error + chunkSaveErrChanClosed bool + lock sync.Mutex + collection string + replication string } func newDirtyPages(file *File) *ContinuousDirtyPages { @@ -82,6 +83,11 @@ func (pages *ContinuousDirtyPages) saveExistingLargestPageToStorage() (hasSavedD func (pages *ContinuousDirtyPages) saveToStorage(reader io.Reader, offset int64, size int64) { + if pages.chunkSaveErrChanClosed { + pages.chunkSaveErrChan = make(chan error, 8) + pages.chunkSaveErrChanClosed = false + } + mtime := time.Now().UnixNano() pages.writeWaitGroup.Add(1) go func() { |
