diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-02-02 05:27:46 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-02 05:27:46 +0100 |
commit | 6ad76b1e5f1239cb2ecc41cd69eff2888916941e (patch) | |
tree | 4f3c0ba97ca7da807b9a859ff71875a6f3e74cf0 | |
parent | 85d2bcb3c87be9ab18be3c19bedc5591d75676cf (diff) | |
parent | c44ce44440dad4cf6c7f0d9ed99104ef301c51d4 (diff) |
Merge pull request #16321 from vespa-engine/revert-16319-balder/disconnect-upcalls-early
Revert "Balder/disconnect upcalls early"
-rw-r--r-- | storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp | 25 | ||||
-rw-r--r-- | storage/src/vespa/storage/persistence/messages.cpp | 7 |
2 files changed, 6 insertions, 26 deletions
diff --git a/storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp b/storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp index 371b63e442c..42f9e876eee 100644 --- a/storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp +++ b/storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp @@ -820,13 +820,6 @@ FileStorManager::sendUp(const std::shared_ptr<api::StorageMessage>& msg) void FileStorManager::onClose() { LOG(debug, "Start closing"); - std::unique_ptr<vespalib::IDestructorCallback> toDestruct; - { - std::lock_guard guard(_executeLock); - toDestruct = std::move(_bucketExecutorRegistration); - } - toDestruct.reset(); - _resource_usage_listener_registration.reset(); // Avoid getting config during shutdown _configFetcher.close(); LOG(debug, "Closed _configFetcher."); @@ -992,18 +985,18 @@ void FileStorManager::initialize_bucket_databases_from_provider() { class FileStorManager::TrackExecutedTasks : public vespalib::Executor::Task { public: - TrackExecutedTasks(std::lock_guard<std::mutex> & guard, FileStorManager & manager); + TrackExecutedTasks(FileStorManager & manager); void run() override; private: FileStorManager & _manager; size_t _serialNum; }; -FileStorManager::TrackExecutedTasks::TrackExecutedTasks(std::lock_guard<std::mutex> & guard, FileStorManager & manager) +FileStorManager::TrackExecutedTasks::TrackExecutedTasks(FileStorManager & manager) : _manager(manager), _serialNum(0) { - (void) guard; + std::lock_guard guard(_manager._executeLock); _serialNum = _manager._executeCount++; _manager._tasksInExecute.insert(_serialNum); } @@ -1022,16 +1015,8 @@ FileStorManager::execute(const spi::Bucket &bucket, std::unique_ptr<spi::BucketT StorBucketDatabase::WrappedEntry entry(_component.getBucketDatabase(bucket.getBucketSpace()).get( bucket.getBucketId(), "FileStorManager::execute")); if (entry.exist()) { - std::unique_ptr<TrackExecutedTasks> trackTasks; - { - std::lock_guard guard(_executeLock); - if (_bucketExecutorRegistration) { - trackTasks = std::make_unique<TrackExecutedTasks>(guard, *this); - } - } - if (trackTasks) { - _filestorHandler->schedule(std::make_shared<RunTaskCommand>(bucket, std::move(trackTasks), std::move(task))); - } + auto trackBuckets = std::make_unique<TrackExecutedTasks>(*this); + _filestorHandler->schedule(std::make_shared<RunTaskCommand>(bucket, std::move(trackBuckets), std::move(task))); } return task; } diff --git a/storage/src/vespa/storage/persistence/messages.cpp b/storage/src/vespa/storage/persistence/messages.cpp index 6b1e0e50c65..14f41850a4f 100644 --- a/storage/src/vespa/storage/persistence/messages.cpp +++ b/storage/src/vespa/storage/persistence/messages.cpp @@ -192,11 +192,7 @@ RunTaskCommand::RunTaskCommand(const spi::Bucket &bucket, _bucket(bucket) { } -RunTaskCommand::~RunTaskCommand() { - if (_afterRun) { - _afterRun->run(); - } -} +RunTaskCommand::~RunTaskCommand() = default; void RunTaskCommand::run(const spi::Bucket & bucket, std::shared_ptr<vespalib::IDestructorCallback> onComplete) @@ -206,7 +202,6 @@ RunTaskCommand::run(const spi::Bucket & bucket, std::shared_ptr<vespalib::IDestr } if (_afterRun) { _afterRun->run(); - _afterRun.reset(); } } |