diff options
author | Tor Egge <Tor.Egge@yahoo-inc.com> | 2017-02-17 15:10:18 +0000 |
---|---|---|
committer | Tor Egge <Tor.Egge@yahoo-inc.com> | 2017-02-17 15:10:18 +0000 |
commit | f2b263de8b9aef78aded6dbb43aaa9c20c5b299a (patch) | |
tree | 0a40d2d5007add7949e5cf95539d19bb2ba4fea9 /searchcore | |
parent | 39b0109937c1fc18904f663dc4e626342b059b77 (diff) |
Use MonitoredRefCount as member instead of inheriting it.
Forward retain() and relase() to member.
Diffstat (limited to 'searchcore')
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/server/documentdb.cpp | 4 | ||||
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/server/documentdb.h | 10 |
2 files changed, 10 insertions, 4 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/server/documentdb.cpp b/searchcore/src/vespa/searchcore/proton/server/documentdb.cpp index f567b2c0292..24930a72c40 100644 --- a/searchcore/src/vespa/searchcore/proton/server/documentdb.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/documentdb.cpp @@ -93,7 +93,6 @@ DocumentDB::DocumentDB(const vespalib::string &baseDir, IClusterStateChangedHandler(), IWipeOldRemovedFieldsHandler(), search::transactionlog::SyncProxy(), - MonitoredRefCount(), _docTypeName(docTypeName), _baseDir(baseDir + "/" + _docTypeName.toString()), // Only one thread per executor, or performDropFeedView() will fail. @@ -121,6 +120,7 @@ DocumentDB::DocumentDB(const vespalib::string &baseDir, _metricsWireService(metricsWireService), _metricsHook(*this, _docTypeName.getName(), protonCfg.numthreadspersearch), _feedView(), + _refCount(), _syncFeedViewEnabled(false), _owner(owner), _state(), @@ -553,7 +553,7 @@ DocumentDB::close() _writeService.master().sync(); // Complete all tasks that didn't observe shutdown // Wait until inflight feed operations to this document db has left. // Caller should have removed document DB from feed router. - waitForZeroRefCount(); + _refCount.waitForZeroRefCount(); // Abort any ongoing maintenance stopMaintenance(); diff --git a/searchcore/src/vespa/searchcore/proton/server/documentdb.h b/searchcore/src/vespa/searchcore/proton/server/documentdb.h index 7842603c17b..09314c168de 100644 --- a/searchcore/src/vespa/searchcore/proton/server/documentdb.h +++ b/searchcore/src/vespa/searchcore/proton/server/documentdb.h @@ -71,8 +71,7 @@ class DocumentDB : public IDocumentDBConfigOwner, public IDocumentSubDB::IOwner, public IClusterStateChangedHandler, public IWipeOldRemovedFieldsHandler, - public search::transactionlog::SyncProxy, - public MonitoredRefCount + public search::transactionlog::SyncProxy { private: class MetricsUpdateHook : public metrics::UpdateHook { @@ -126,6 +125,7 @@ private: MetricsWireService &_metricsWireService; MetricsUpdateHook _metricsHook; vespalib::VarHolder<IFeedView::SP> _feedView; + MonitoredRefCount _refCount; bool _syncFeedViewEnabled; IDocumentDBOwner &_owner; DDBState _state; @@ -410,6 +410,12 @@ public: StatusReport::UP reportStatus() const; + /** + * Reference counting + */ + void retain() { _refCount.retain(); } + void release() { _refCount.release(); } + bool getRejectedConfig() const { return _state.getRejectedConfig(); } void wipeHistory(void); |