From ee71b3979af448ca2233fa7791e2e995330da56a Mon Sep 17 00:00:00 2001 From: amirshavit Date: Wed, 23 May 2018 17:26:09 +0100 Subject: [PATCH] Add yield (#64) Simply calls rd_kafka_yield; allows consumers and producers to abort the current callback dispatcher. --- include/cppkafka/kafka_handle_base.h | 7 +++++++ src/kafka_handle_base.cpp | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/include/cppkafka/kafka_handle_base.h b/include/cppkafka/kafka_handle_base.h index 148071f..68dd61b 100644 --- a/include/cppkafka/kafka_handle_base.h +++ b/include/cppkafka/kafka_handle_base.h @@ -200,6 +200,13 @@ public: * This calls rd_kafka_outq_len */ int get_out_queue_length() const; + + /** + * \brief Cancels the current callback dispatcher + * + * This calls rd_kafka_yield + */ + void yield() const; protected: KafkaHandleBase(Configuration config); diff --git a/src/kafka_handle_base.cpp b/src/kafka_handle_base.cpp index aab810b..9d47039 100644 --- a/src/kafka_handle_base.cpp +++ b/src/kafka_handle_base.cpp @@ -165,6 +165,10 @@ int KafkaHandleBase::get_out_queue_length() const { return rd_kafka_outq_len(handle_.get()); } +void KafkaHandleBase::yield() const { + rd_kafka_yield(handle_.get()); +} + void KafkaHandleBase::set_handle(rd_kafka_t* handle) { handle_ = HandlePtr(handle, &rd_kafka_destroy); }