diff --git a/include/pika_binlog.h b/include/pika_binlog.h index 84127fb535..851de88746 100644 --- a/include/pika_binlog.h +++ b/include/pika_binlog.h @@ -52,7 +52,7 @@ class Binlog : public pstd::noncopyable { void Unlock() { mutex_.unlock(); } pstd::Status Put(const std::string& item); - + pstd::Status IsOpened(); pstd::Status GetProducerStatus(uint32_t* filenum, uint64_t* pro_offset, uint32_t* term = nullptr, uint64_t* logic_id = nullptr); /* * Set Producer pro_num and pro_offset with lock diff --git a/src/pika_binlog.cc b/src/pika_binlog.cc index d0a612f24c..6f4ed2861d 100644 --- a/src/pika_binlog.cc +++ b/src/pika_binlog.cc @@ -145,6 +145,13 @@ void Binlog::InitLogFile() { opened_.store(true); } +Status Binlog::IsOpened() { + if (!opened_.load()) { + return Status::Busy("Binlog is not open yet"); + } + return Status::OK(); +} + Status Binlog::GetProducerStatus(uint32_t* filenum, uint64_t* pro_offset, uint32_t* term, uint64_t* logic_id) { if (!opened_.load()) { return Status::Busy("Binlog is not open yet"); diff --git a/src/pika_consensus.cc b/src/pika_consensus.cc index 0de6e7d077..05cf535b48 100644 --- a/src/pika_consensus.cc +++ b/src/pika_consensus.cc @@ -374,9 +374,7 @@ Status ConsensusCoordinator::InternalAppendBinlog(const std::shared_ptr& cm } return s; } - uint32_t filenum = 0; - uint64_t offset = 0; - return stable_logger_->Logger()->GetProducerStatus(&filenum, &offset); + return stable_logger_->Logger()->IsOpened(); } Status ConsensusCoordinator::AddSlaveNode(const std::string& ip, int port, int session_id) {