mirror of
https://github.com/Telecominfraproject/wlan-cloud-lib-cppkafka.git
synced 2025-11-01 19:18:04 +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) {
|
MessageList Consumer::poll_batch(size_t max_batch_size, milliseconds timeout) {
|
||||||
vector<rd_kafka_message_t*> raw_messages(max_batch_size);
|
vector<rd_kafka_message_t*> raw_messages(max_batch_size);
|
||||||
rd_kafka_queue_t* queue = rd_kafka_queue_get_consumer(get_handle());
|
// Note that this will leak the queue when using rdkafka < 0.11.5 (see get_queue comment)
|
||||||
ssize_t result = rd_kafka_consume_batch_queue(queue, timeout.count(), raw_messages.data(),
|
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());
|
raw_messages.size());
|
||||||
if (result == -1) {
|
if (result == -1) {
|
||||||
check_error(rd_kafka_last_error());
|
check_error(rd_kafka_last_error());
|
||||||
|
|||||||
Reference in New Issue
Block a user