Merge branch 'features/broadcaster-push' of github.com:sfc-gh-ljoswiak/foundationdb into features/broadcaster-push
This commit is contained in:
commit
598b23f8d4
|
@ -84,6 +84,11 @@ class ConfigBroadcasterImpl {
|
||||||
|
|
||||||
template <class Changes>
|
template <class Changes>
|
||||||
Future<Void> pushChanges(BroadcastClientDetails& client, Changes const& changes) {
|
Future<Void> pushChanges(BroadcastClientDetails& client, Changes const& changes) {
|
||||||
|
// Skip if client has already seen the latest version.
|
||||||
|
if (client.lastSeenVersion >= mostRecentVersion) {
|
||||||
|
return Void();
|
||||||
|
}
|
||||||
|
|
||||||
ConfigBroadcastChangesRequest req;
|
ConfigBroadcastChangesRequest req;
|
||||||
for (const auto& versionedMutation : changes) {
|
for (const auto& versionedMutation : changes) {
|
||||||
if (versionedMutation.version > client.lastSeenVersion &&
|
if (versionedMutation.version > client.lastSeenVersion &&
|
||||||
|
@ -314,7 +319,7 @@ Future<Void> ConfigBroadcaster::registerWorker(Version lastSeenVersion,
|
||||||
ConfigClassSet configClassSet,
|
ConfigClassSet configClassSet,
|
||||||
Future<Void> watcher,
|
Future<Void> watcher,
|
||||||
ConfigBroadcastInterface broadcastInterface) {
|
ConfigBroadcastInterface broadcastInterface) {
|
||||||
return impl().registerWorker(this, lastSeenVersion, configClassSet, watcher, broadcastInterface);
|
return impl().registerWorker(this, lastSeenVersion, std::move(configClassSet), watcher, broadcastInterface);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConfigBroadcaster::applyChanges(Standalone<VectorRef<VersionedConfigMutationRef>> const& changes,
|
void ConfigBroadcaster::applyChanges(Standalone<VectorRef<VersionedConfigMutationRef>> const& changes,
|
||||||
|
|
|
@ -781,6 +781,7 @@ TEST_CASE("/fdbserver/ConfigDB/Transaction/CompactThenGetConfigClasses") {
|
||||||
return Void();
|
return Void();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: The below tests seem to always segfault
|
||||||
TEST_CASE("/fdbserver/ConfigDB/Transaction/GetKnobs") {
|
TEST_CASE("/fdbserver/ConfigDB/Transaction/GetKnobs") {
|
||||||
wait(testGetKnobs(params, false, false));
|
wait(testGetKnobs(params, false, false));
|
||||||
return Void();
|
return Void();
|
||||||
|
|
Loading…
Reference in New Issue