From b30534bfad57e7476f34363b6323e1288180da0d Mon Sep 17 00:00:00 2001 From: Amir Shavit Date: Sun, 13 May 2018 22:46:32 +0100 Subject: [PATCH] Add yield 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 cf981e20..f235ef3e 100644 --- a/include/cppkafka/kafka_handle_base.h +++ b/include/cppkafka/kafka_handle_base.h @@ -200,6 +200,13 @@ class CPPKAFKA_API KafkaHandleBase { * 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 1744e6d3..607c6138 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); }