代码拉取完成,页面将自动刷新
#include "threadPool.h"
int epollAdd(int epfd, int fd){
struct epoll_event event;
event.events = EPOLLIN;
event.data.fd = fd;
int ret = epoll_ctl(epfd,EPOLL_CTL_ADD,fd,&event);
ERROR_CHECK(ret,-1,"epollAdd");
return 0;
}
int epollDel(int epfd, int fd){
int ret = epoll_ctl(epfd,EPOLL_CTL_DEL,fd,NULL);
ERROR_CHECK(ret,-1,"epollDel");
return 0;
}
void *threadFunc(void* arg){
// 接受传进来的threadPool
threadPool_t *pthreadPool = (threadPool_t *)arg;
while(1){
// 加锁
pthread_mutex_lock(&pthreadPool->mutex);
while(pthreadPool->taskQueue.queueSize == 0){
// 没有就绪任务则陷入等待
pthread_cond_wait(&pthreadPool->cond,&pthreadPool->mutex);
}
LOGRECORD(INFO,"childthread gets a task !!");
int netfd = pthreadPool->taskQueue.pfront->fd;
Dequeue(&pthreadPool->taskQueue);
ERROR_CHECK(netfd, -1, "Dequeue");
// 记录用户的信息
userProcess_t usr;
bzero(&usr,sizeof(usr));
bzero(&usr.stack,sizeof(usr));
strcpy(usr.initPath,"/home/alopex/wangpan");
memcpy(usr.outPath,usr.initPath,strlen(usr.initPath));
initStack(&usr,usr.initPath);
while(1){
int ret = execCommand(netfd, &usr);
if(ret == -1){
break;
}
}
}
return NULL;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。