mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2025-10-07 14:25:49 +08:00
* Add defer cancelFunc() to ensure context is always cancelled * Add ctx.Done() case in goroutine select to prevent goroutine leak * Fixes memory accumulation issue where goroutines were not properly cleaned up
This commit is contained in:
@@ -49,10 +49,14 @@ func (wfs *WFS) Read(cancel <-chan struct{}, in *fuse.ReadIn, buff []byte) (fuse
|
||||
|
||||
// Create a context that will be cancelled when the cancel channel receives a signal
|
||||
ctx, cancelFunc := context.WithCancel(context.Background())
|
||||
defer cancelFunc()
|
||||
|
||||
go func() {
|
||||
select {
|
||||
case <-cancel:
|
||||
cancelFunc()
|
||||
case <-ctx.Done():
|
||||
// Context already cancelled, exit goroutine
|
||||
}
|
||||
}()
|
||||
|
||||
|
Reference in New Issue
Block a user