本文整理汇总了C++中queue::add方法的典型用法代码示例。如果您正苦于以下问题:C++ queue::add方法的具体用法?C++ queue::add怎么用?C++ queue::add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类queue
的用法示例。
在下文中一共展示了queue::add方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: scheduler
void* scheduler(void *t)
{
if(!DEBUG_MODE)
{
sleep(sleept);
}
struct requests r;
int size=0;
if (sched==FCFS)
{
while(1)
{
if(!q.empty())
{
q.get(r,size);
pthread_mutex_lock(&exec_queue);
tqueue.add(r,size);
pthread_mutex_unlock(&exec_queue);
}
}
}
else
{
while(1)
{
if(!q.empty())
{
q.getshrt(r,size);
pthread_mutex_lock(&exec_queue);
tqueue.add(r,size);
pthread_mutex_unlock(&exec_queue);
}
}
}
return NULL;
}
示例2: handlerq
void handlerq(int n, std::string log){
char msg[1000], *headers[3];
char c;
int rcvd,fsize;
int i=0;
int flag=0;
struct requests req;
do
{
rcvd=read(n, &c, 1);
msg[i]=c;
if(msg[i]== '\n'&& msg[i-1] == '\r')
{
flag++;
}
else if(msg[i]!='\r')flag=0;
if(i==2)
{
if((msg[0]!='G')&&(msg[1]!='E')&&(msg[2]!='T'))
{
msg[2]='\0';
break;
}
}
else if(i==3)
{
if((msg[0]!='H')&&(msg[1]!='E')&&(msg[2]!='A')&&(msg[3]!='D'))
{
msg[3]='\0';
break;
}
}
if (flag==2)
{
msg[i+1]='\0';
break;
}
i++;
}while(1);
if (rcvd<0)
{
std::cerr<<"some error in recv()"<<std::endl;
close(n);
}
else if (rcvd==0)
{
std::cerr<<"Client disconnected unexpectedly"<<std::endl;
}
else
{
log.append(" - [");
log.append(get_timestamp());
log.erase(log.length()-1);
req.log=log;
headers[0] = strtok (msg, " \t\n");
headers[1] = strtok (NULL, " \t");
headers[2] = strtok (NULL, " \t\n");
if ((headers[0]==NULL)||(headers[1]==NULL)||(headers[2]==NULL))
{
shutdown (n, SHUT_RDWR);
close(n);
}
else
{
int hlength=0;
char fullpath[200];
strcpy(fullpath,root);
if ( strncmp(headers[0], "GET\0", 4)==0 )
{
req.is_dir=false;
req.path_found=true;
if(headers[1][1]=='~')
{
headers[1]+=2;
strcat(fullpath,headers[1]);
}
else
{
strcpy(fullpath,headers[1]);
}
hlength=strlen(fullpath);
if(fullpath[hlength-1]=='/')
{
req.is_dir=true;
}
else
{
if((fsize=get_fsize(fullpath))==-1)
{
req.path_found=false;
}
}
strcpy(req.request_type,headers[0]);
strcpy(req.path,fullpath);
req.sockfd=n;
strcpy(req.http_ver,headers[2]);
q.add(req,fsize);
}
else if ( strncmp(headers[0], "HEAD\0", 4)==0)
//.........这里部分代码省略.........