示例#1
0
文件: uvc.c 项目: whtc123/libuvc
int channel_select_remove(channel *chan){
	uvc_ctx *ctx=uvc_self();
	//queue_t *node;
	queue_t *q = queue_head(&chan->readq);  
   for (; q != queue_sentinel(&chan->readq); q = queue_next(&chan->readq))  {
   		if(q->ext == ctx){
   			queue_remove(q);
   		}
   }

   for (; q != queue_sentinel(&chan->writq); q = queue_next(&chan->writq))  {
   		if(q->ext == ctx){
   			queue_remove(q);
   		}
   }
   return 0;
}
示例#2
0
文件: fast_queue.c 项目: yylq/lolib
/* the stable insertion sort */
void
queue_sort(queue_t *queue,
    int (*cmp)(const queue_t *, const queue_t *))
{
    queue_t  *q, *prev, *next;

    q = queue_head(queue);
    if (q == queue_tail(queue)) {
        return;
    }
    for (q = queue_next(q); q != queue_sentinel(queue); q = next) {
        prev = queue_prev(q);
        next = queue_next(q);
        queue_remove(q);
        do {
            if (cmp(prev, q) <= 0) {
                break;
            }
            prev = queue_prev(prev);
        } while (prev != queue_sentinel(queue));
        queue_insert_head(prev, q);
    }
}
示例#3
0
文件: http.c 项目: whtc123/mysource
int httproute_call(HttpSession *session)
{
	queue_t *route_queue=&session->server->routes;
	char *path=session->request.path;
	queue_t *q=NULL;
	HttpRoute *route;
	//printf("httproute_call  in !\n");
	if(queue_empty(route_queue))return 404;
	
	for(q = queue_prev(route_queue);
        q != queue_sentinel(route_queue);
        q = queue_last(q) ) {

        route = queue_data(q, HttpRoute, node);
		if(strcmp(path,route->path)==0 )
		{
			TraceInfo("route callback  found!\n");
			return route->func(session,route->arg);
		}
    }
	TraceInfo("route callback not found!\n");
	return 404;
}