summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-02-02 05:27:46 +0100
committerGitHub <noreply@github.com>2021-02-02 05:27:46 +0100
commit6ad76b1e5f1239cb2ecc41cd69eff2888916941e (patch)
tree4f3c0ba97ca7da807b9a859ff71875a6f3e74cf0
parent85d2bcb3c87be9ab18be3c19bedc5591d75676cf (diff)
parentc44ce44440dad4cf6c7f0d9ed99104ef301c51d4 (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.cpp25
-rw-r--r--storage/src/vespa/storage/persistence/messages.cpp7
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();
}
}