summaryrefslogtreecommitdiff
path: root/s/writeback_listener.h
diff options
context:
space:
mode:
Diffstat (limited to 's/writeback_listener.h')
-rw-r--r--s/writeback_listener.h24
1 files changed, 22 insertions, 2 deletions
diff --git a/s/writeback_listener.h b/s/writeback_listener.h
index 7335999..0125073 100644
--- a/s/writeback_listener.h
+++ b/s/writeback_listener.h
@@ -35,10 +35,30 @@ namespace mongo {
*/
class WriteBackListener : public BackgroundJob {
public:
+
+ class ConnectionIdent {
+ public:
+ ConnectionIdent( const string& ii , ConnectionId id )
+ : instanceIdent( ii ) , connectionId( id ) {
+ }
+
+ bool operator<(const ConnectionIdent& other) const {
+ if ( instanceIdent == other.instanceIdent )
+ return connectionId < other.connectionId;
+
+ return instanceIdent < other.instanceIdent;
+ }
+
+ string toString() const { return str::stream() << instanceIdent << ":" << connectionId; }
+
+ string instanceIdent;
+ ConnectionId connectionId;
+ };
+
static void init( DBClientBase& conn );
static void init( const string& host );
- static BSONObj waitFor( ConnectionId connectionId, const OID& oid );
+ static BSONObj waitFor( const ConnectionIdent& ident, const OID& oid );
protected:
WriteBackListener( const string& addr );
@@ -59,7 +79,7 @@ namespace mongo {
};
static mongo::mutex _seenWritebacksLock; // protects _seenWritbacks
- static map<ConnectionId,WBStatus> _seenWritebacks; // connectionId -> last write back GLE
+ static map<ConnectionIdent,WBStatus> _seenWritebacks; // connectionId -> last write back GLE
};
void waitForWriteback( const OID& oid );