完善日志系统,修复读取配置文件时的内存泄漏,初步添加熔断机制与指数退避机制

This commit is contained in:
2025-10-11 16:57:27 +08:00
parent f518bf5064
commit 331c6b9f89
14 changed files with 104 additions and 43 deletions

View File

@ -6,6 +6,8 @@
#include <unistd.h>
#include <time.h>
#include <errno.h>
#include <fcntl.h>
#include <string.h>
int in_log(logs *log,log_manager *self)
{
@ -81,15 +83,21 @@ int cleanup(log_manager *self)
if(self->log ==NULL)
return 1;
logs *tobeclean,*loc;
sem_wait(&self->log_sem);
sem_wait(&self->log_sem);//获取信号量
loc = self->log;
self->log = NULL;
self->count = 0;
self->count = 0;//摘取log链
sem_post(&self->log_sem);
//释放信号量
while(loc->next !=NULL)
{
tobeclean = loc;
loc = loc->next;
int fd = open("log.txt",O_CREAT | O_WRONLY | O_APPEND, 0777);
if(fd == -1)
perror("file:");
write(fd,loc->log,strlen(loc->log));
close(fd);
free(tobeclean);
}
free(loc);

View File

@ -9,6 +9,7 @@
#include <sys/epoll.h>
#include "quit.h"
#include "tem/ctl.h"
#include "tools/toml/toml.h"
int quit_server(netm *self)
{
@ -33,6 +34,7 @@ int quit_server(netm *self)
self->fifo_fd[0] = -1;
}
//关闭管道监听
}
void quit_all(int status,void *self_p)
@ -63,6 +65,7 @@ void quit_all(int status,void *self_p)
free(arg);
}
}
toml_free(resouce->tem->config);
free(resouce->tem->command);
}
//释放终端资源