45 lines
1.2 KiB
C
45 lines
1.2 KiB
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include "quit.h"
|
|
#include "tem/ctl.h"
|
|
|
|
void quit_all(int status,void *self_p)
|
|
{
|
|
alres *resouce =(alres*)self_p;
|
|
//转换参数
|
|
|
|
resouce->network->shutdown_pool(resouce->network);
|
|
logs *netlog = (logs*)malloc(sizeof(logs));
|
|
netlog->next = NULL;
|
|
memcpy(netlog->log,"shuting down networkserver",27);
|
|
resouce->loger->in_log(netlog,resouce->loger);
|
|
free(resouce->network);
|
|
//释放网络资源
|
|
if(resouce->tem->command !=NULL){
|
|
free_history(resouce->tem);
|
|
if(resouce->tem->command->arg != NULL)
|
|
{
|
|
args* arg = resouce->tem->command->arg;
|
|
if(arg->next !=NULL)
|
|
{
|
|
while(arg->next != NULL){
|
|
args* tobefree = arg;
|
|
arg = arg->next;
|
|
free(tobefree);
|
|
}
|
|
free(arg);
|
|
}
|
|
}
|
|
free(resouce->tem->command);
|
|
}
|
|
//释放终端资源
|
|
pthread_mutex_destroy(&resouce->loger->mtx);
|
|
resouce->loger->cleanup(resouce->loger);
|
|
sem_destroy(&resouce->loger->log_sem);
|
|
//销毁信号量
|
|
|
|
free(resouce->loger);
|
|
//清理日志
|
|
}
|