summaryrefslogtreecommitdiffstats
path: root/searchcore
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@yahoo-inc.com>2017-02-17 15:10:18 +0000
committerTor Egge <Tor.Egge@yahoo-inc.com>2017-02-17 15:10:18 +0000
commitf2b263de8b9aef78aded6dbb43aaa9c20c5b299a (patch)
tree0a40d2d5007add7949e5cf95539d19bb2ba4fea9 /searchcore
parent39b0109937c1fc18904f663dc4e626342b059b77 (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.cpp4
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/documentdb.h10
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);