mirror of
https://github.com/Telecominfraproject/wlan-cloud-lib-cppkafka.git
synced 2025-11-01 02:57:53 +00:00
poll_batch currently leaks memory while initialising the queue returned by rd_kafka_queue_get_consumer. The fix as suggested by @mfontanini as done here is to initialise the queue with a Queue so it's cleaned up when going out of scope.
This commit is contained in:
committed by
Matias Fontanini
parent
d6f8129207
commit
df04b27e22
@@ -261,8 +261,9 @@ MessageList Consumer::poll_batch(size_t max_batch_size) {
|
||||
|
||||
MessageList Consumer::poll_batch(size_t max_batch_size, milliseconds timeout) {
|
||||
vector<rd_kafka_message_t*> raw_messages(max_batch_size);
|
||||
rd_kafka_queue_t* queue = rd_kafka_queue_get_consumer(get_handle());
|
||||
ssize_t result = rd_kafka_consume_batch_queue(queue, timeout.count(), raw_messages.data(),
|
||||
// Note that this will leak the queue when using rdkafka < 0.11.5 (see get_queue comment)
|
||||
Queue queue(get_queue(rd_kafka_queue_get_consumer(get_handle())));
|
||||
ssize_t result = rd_kafka_consume_batch_queue(queue.get_handle() , timeout.count(), raw_messages.data(),
|
||||
raw_messages.size());
|
||||
if (result == -1) {
|
||||
check_error(rd_kafka_last_error());
|
||||
|
||||
Reference in New Issue
Block a user