diff options
| author | chrislu <chris.lu@gmail.com> | 2024-03-16 11:38:27 -0700 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2024-03-16 11:38:27 -0700 |
| commit | 27bb38228b647e34fe20a6016fa04c829138c272 (patch) | |
| tree | 8ee3c90eb92b8ca24bc9a7588b477778ca648217 /weed/server/filer_grpc_server_sub_meta.go | |
| parent | 054d0b348785fe087809e1fdd99cb93489602db5 (diff) | |
| download | seaweedfs-27bb38228b647e34fe20a6016fa04c829138c272.tar.xz seaweedfs-27bb38228b647e34fe20a6016fa04c829138c272.zip | |
only broad cast when there are waiting threads
Diffstat (limited to 'weed/server/filer_grpc_server_sub_meta.go')
| -rw-r--r-- | weed/server/filer_grpc_server_sub_meta.go | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/weed/server/filer_grpc_server_sub_meta.go b/weed/server/filer_grpc_server_sub_meta.go index 8e8b4e5c4..436c4158f 100644 --- a/weed/server/filer_grpc_server_sub_meta.go +++ b/weed/server/filer_grpc_server_sub_meta.go @@ -4,6 +4,7 @@ import ( "fmt" "github.com/seaweedfs/seaweedfs/weed/stats" "strings" + "sync/atomic" "time" "google.golang.org/protobuf/proto" @@ -150,7 +151,9 @@ func (fs *FilerServer) SubscribeLocalMetadata(req *filer_pb.SubscribeMetadataReq lastReadTime, isDone, readInMemoryLogErr = fs.filer.LocalMetaLogBuffer.LoopProcessLogData("localMeta:"+clientName, lastReadTime, req.UntilNs, func() bool { fs.listenersLock.Lock() + atomic.AddInt64(&fs.listenersWaits, 1) fs.listenersCond.Wait() + atomic.AddInt64(&fs.listenersWaits, -1) fs.listenersLock.Unlock() if !fs.hasClient(req.ClientId, req.ClientEpoch) { return false |
