use std::sync::Arc;
use std::sync::Mutex;
use log::error;
use crate::api::kafka_publish_message::KafkaPublishMessage;
pub fn drain_messages_from_locked_work_vec(
lockable_work_vec: &Arc<Mutex<Vec<KafkaPublishMessage>>>,
) -> Vec<KafkaPublishMessage> {
match lockable_work_vec.lock() {
Ok(mut local_access_to_work_vec) => {
let num_msgs = local_access_to_work_vec.len();
if num_msgs > 10 {
local_access_to_work_vec.drain(0..10).collect()
} else {
local_access_to_work_vec.drain(0..num_msgs).collect()
}
}
Err(e) => {
error!("failed to get lock on work vec with err={e}");
vec![]
}
}
}