view_update_generator: Add early abort subscription
Subscribe v.u.g. to the main's stop_signal. For now a no-op callback. Signed-off-by: Pavel Emelyanov <xemul@scylladb.com>
This commit is contained in:
@@ -90,10 +90,12 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
view_update_generator::view_update_generator(replica::database& db, sharded<service::storage_proxy>& proxy)
|
||||
view_update_generator::view_update_generator(replica::database& db, sharded<service::storage_proxy>& proxy, abort_source& as)
|
||||
: _db(db)
|
||||
, _proxy(proxy)
|
||||
, _progress_tracker(std::make_unique<progress_tracker>()) {
|
||||
, _progress_tracker(std::make_unique<progress_tracker>())
|
||||
, _early_abort_subscription(as.subscribe([this] () noexcept { do_abort(); }))
|
||||
{
|
||||
setup_metrics();
|
||||
discover_staging_sstables();
|
||||
_db.plug_view_update_generator(*this);
|
||||
@@ -213,6 +215,9 @@ future<> view_update_generator::start() {
|
||||
return make_ready_future<>();
|
||||
}
|
||||
|
||||
void view_update_generator::do_abort() noexcept {
|
||||
}
|
||||
|
||||
future<> view_update_generator::stop() {
|
||||
_db.unplug_view_update_generator();
|
||||
_as.request_abort();
|
||||
|
||||
@@ -64,8 +64,10 @@ private:
|
||||
metrics::metric_groups _metrics;
|
||||
class progress_tracker;
|
||||
std::unique_ptr<progress_tracker> _progress_tracker;
|
||||
optimized_optional<abort_source::subscription> _early_abort_subscription;
|
||||
void do_abort() noexcept;
|
||||
public:
|
||||
view_update_generator(replica::database& db, sharded<service::storage_proxy>& proxy);
|
||||
view_update_generator(replica::database& db, sharded<service::storage_proxy>& proxy, abort_source& as);
|
||||
~view_update_generator();
|
||||
|
||||
future<> start();
|
||||
|
||||
Reference in New Issue
Block a user