diff options
author | Henning Baldersheim <balder@oath.com> | 2018-09-07 15:51:13 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@oath.com> | 2018-09-07 15:51:13 +0200 |
commit | 1cc9b065b9160600dcef93c6f041d774aea5d958 (patch) | |
tree | c8eaca8a3a262ec169e944d3dde78474a225f34a /searchlib | |
parent | 35a4e8cdcc82afc39cf0a8adc2412f6d3fe0ea73 (diff) |
Proper connected check and proper relaying og ok()
Diffstat (limited to 'searchlib')
3 files changed, 7 insertions, 4 deletions
diff --git a/searchlib/src/vespa/searchlib/transactionlog/session.cpp b/searchlib/src/vespa/searchlib/transactionlog/session.cpp index ef36ff980d8..e703c32484f 100644 --- a/searchlib/src/vespa/searchlib/transactionlog/session.cpp +++ b/searchlib/src/vespa/searchlib/transactionlog/session.cpp @@ -100,7 +100,6 @@ Session::Session(int sId, const SerialNumRange & r, const Domain::SP & d, _domain(d), _range(r), _id(sId), - _ok(true), _visitRunning(false), _inSync(false), _finished(false), diff --git a/searchlib/src/vespa/searchlib/transactionlog/session.h b/searchlib/src/vespa/searchlib/transactionlog/session.h index dde9c03d3b8..bf35d83c000 100644 --- a/searchlib/src/vespa/searchlib/transactionlog/session.h +++ b/searchlib/src/vespa/searchlib/transactionlog/session.h @@ -29,6 +29,7 @@ public: virtual bool send(int32_t id, const vespalib::string & domain, const Packet & packet) = 0; virtual bool sendDone(int32_t id, const vespalib::string & domain) = 0; virtual bool connected() const = 0; + virtual bool ok() const = 0; }; typedef std::shared_ptr<Session> SP; Session(const Session &) = delete; @@ -38,7 +39,6 @@ public: const SerialNumRange & range() const { return _range; } int id() const { return _id; } bool inSync() const { return _inSync; } - bool ok() const { return _ok; } bool finished() const; static Task::UP createTask(const Session::SP & session); void setStartTime(time_point startTime) { _startTime = startTime; } @@ -54,6 +54,7 @@ private: Session::SP _session; }; + bool ok() const { return _destination->ok(); } bool send(const Packet & packet); bool sendDone(); void visit(); @@ -65,7 +66,6 @@ private: DomainSP _domain; SerialNumRange _range; int _id; - bool _ok; std::atomic<bool> _visitRunning; std::atomic<bool> _inSync; std::atomic<bool> _finished; diff --git a/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp b/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp index 2ecacf8f22b..4b3e7bddb07 100644 --- a/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp +++ b/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp @@ -353,6 +353,10 @@ public: } ~RPCDestination() override { _connection->SubRef(); } + bool ok() const override { + return _ok; + } + bool send(int32_t id, const vespalib::string & domain, const Packet & packet) override { FRT_RPCRequest *req = _supervisor.AllocRPCRequest(); req->SetMethodName("visitCallback"); @@ -371,7 +375,7 @@ public: return retval; } bool connected() const override { - return (_connection->GetState() != FNET_Connection::FNET_CONNECTED); + return (_connection->GetState() <= FNET_Connection::FNET_CONNECTED); } private: bool send(FRT_RPCRequest * req) { |