in src/log_producer_manager.c [57:86]
void _try_flush_loggroup(log_producer_manager * producer_manager)
{
int32_t now_time = time(NULL);
CS_ENTER(producer_manager->lock);
if (producer_manager->builder != NULL && now_time - producer_manager->firstLogTime > producer_manager->producer_config->packageTimeoutInMS / 1000)
{
log_group_builder * builder = producer_manager->builder;
producer_manager->builder = NULL;
CS_LEAVE(producer_manager->lock);
size_t loggroup_size = builder->loggroup_size;
int rst = log_queue_push(producer_manager->loggroup_queue, builder);
aos_debug_log("try push loggroup to flusher, size : %d, status : %d", (int)loggroup_size, rst);
if (rst != 0)
{
aos_error_log("try push loggroup to flusher failed, force drop this log group, error code : %d", rst);
log_group_destroy(builder);
}
else
{
producer_manager->totalBufferSize += loggroup_size;
COND_SIGNAL(producer_manager->triger_cond);
}
}
else
{
CS_LEAVE(producer_manager->lock);
}
}