Move immediate entry notification logic into Storage.

This prevents a race condition that could result in out of order
notifications.
This commit is contained in:
Peter Johnson
2017-09-30 23:25:45 -07:00
parent 10982e0275
commit e4a8bff70e
6 changed files with 120 additions and 44 deletions

View File

@@ -85,13 +85,13 @@ class EntryNotifier
bool local_notifiers() const override;
unsigned int Add(std::function<void(const EntryNotification& event)> callback,
llvm::StringRef prefix, unsigned int flags);
llvm::StringRef prefix, unsigned int flags) override;
unsigned int Add(std::function<void(const EntryNotification& event)> callback,
unsigned int local_id, unsigned int flags);
unsigned int local_id, unsigned int flags) override;
unsigned int AddPolled(unsigned int poller_uid, llvm::StringRef prefix,
unsigned int flags);
unsigned int flags) override;
unsigned int AddPolled(unsigned int poller_uid, unsigned int local_id,
unsigned int flags);
unsigned int flags) override;
void NotifyEntry(unsigned int local_id, StringRef name,
std::shared_ptr<Value> value, unsigned int flags,