op cache: check callback return value

This commit is contained in:
Adrien Béraud committed 2018-12-24 18:36:29 -05:00
1 parent ccef94c11b
commit 00ebc5e2bf
2 files changed
+4 -4

No files matched your search

+1 -2
View File
@@ -133,8 +133,7 @@ SearchCache::listen(ValueCallback get_cb, Sp<Query> q, Value::Filter filter, std
auto token = nextToken_++;
if (nextToken_ == 0)
nextToken_++;
op->second->addListener(token, get_cb, q, filter);
return token;
return op->second->addListener(token, get_cb, q, filter) ? token : 0;
}
bool
+3 -2
View File
@@ -87,11 +87,12 @@ public:
void onValuesAdded(const std::vector<Sp<Value>>& vals);
void onValuesExpired(const std::vector<Sp<Value>>& vals);
void addListener(size_t token, ValueCallback cb, Sp<Query> q, Value::Filter filter) {
bool addListener(size_t token, ValueCallback cb, Sp<Query> q, Value::Filter filter) {
listeners.emplace(token, LocalListener{q, filter, cb});
auto cached = cache.get(filter);
if (not cached.empty())
cb(cached, false);
return cb(cached, false);
return true;
}
bool removeListener(size_t token, const time_point& now) {