您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ APR_RING_REMOVE函数代码示例

51自学网 2021-06-01 19:35:43
  C++
这篇教程C++ APR_RING_REMOVE函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中APR_RING_REMOVE函数的典型用法代码示例。如果您正苦于以下问题:C++ APR_RING_REMOVE函数的具体用法?C++ APR_RING_REMOVE怎么用?C++ APR_RING_REMOVE使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了APR_RING_REMOVE函数的25个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: APR_DECLARE

APR_DECLARE(apr_status_t) apr_pollset_remove(apr_pollset_t *pollset,                                             const apr_pollfd_t *descriptor){    apr_os_sock_t fd;    pfd_elem_t *ep;    apr_status_t rv = APR_SUCCESS;    int res;    pollset_lock_rings();    if (descriptor->desc_type == APR_POLL_SOCKET) {        fd = descriptor->desc.s->socketdes;    }    else {        fd = descriptor->desc.f->filedes;    }    res = port_dissociate(pollset->port_fd, PORT_SOURCE_FD, fd);    if (res < 0) {        rv = APR_NOTFOUND;    }    if (!APR_RING_EMPTY(&(pollset->query_ring), pfd_elem_t, link)) {        for (ep = APR_RING_FIRST(&(pollset->query_ring));             ep != APR_RING_SENTINEL(&(pollset->query_ring),                                     pfd_elem_t, link);             ep = APR_RING_NEXT(ep, link)) {            if (descriptor->desc.s == ep->pfd.desc.s) {                APR_RING_REMOVE(ep, link);                APR_RING_INSERT_TAIL(&(pollset->dead_ring),                                     ep, pfd_elem_t, link);                break;            }        }    }    if (!APR_RING_EMPTY(&(pollset->add_ring), pfd_elem_t, link)) {        for (ep = APR_RING_FIRST(&(pollset->add_ring));             ep != APR_RING_SENTINEL(&(pollset->add_ring),                                     pfd_elem_t, link);             ep = APR_RING_NEXT(ep, link)) {            if (descriptor->desc.s == ep->pfd.desc.s) {                APR_RING_REMOVE(ep, link);                APR_RING_INSERT_TAIL(&(pollset->dead_ring),                                     ep, pfd_elem_t, link);                break;            }        }    }    pollset_unlock_rings();    return rv;}
开发者ID:TaoheGit,项目名称:hmi_sdl_android,代码行数:57,


示例2: apr_pcalloc

/* * NOTE: This function is not thread safe by itself. Caller should hold the lock */static apr_thread_pool_task_t *task_new(apr_thread_pool_t * me,                                        apr_thread_start_t func,                                        void *param, apr_byte_t priority,                                        void *owner, apr_time_t time){    apr_thread_pool_task_t *t;    if (APR_RING_EMPTY(me->recycled_tasks, apr_thread_pool_task, link)) {        t = apr_pcalloc(me->pool, sizeof(*t));        if (NULL == t) {            return NULL;        }    }    else {        t = APR_RING_FIRST(me->recycled_tasks);        APR_RING_REMOVE(t, link);    }    APR_RING_ELEM_INIT(t, link);    t->func = func;    t->param = param;    t->owner = owner;    if (time > 0) {        t->dispatch.time = apr_time_now() + time;    }    else {        t->dispatch.priority = priority;    }    return t;}
开发者ID:accre,项目名称:lstore-apr-util-accre,代码行数:33,


示例3: mmap_cleanup

static apr_status_t mmap_cleanup(void *themmap){    apr_mmap_t *mm = themmap;    apr_mmap_t *next = APR_RING_NEXT(mm,link);    int rv = 0;    /* we no longer refer to the mmaped region */    APR_RING_REMOVE(mm,link);    APR_RING_NEXT(mm,link) = NULL;    APR_RING_PREV(mm,link) = NULL;    if (next != mm) {        /* more references exist, so we're done */        return APR_SUCCESS;    }#ifdef BEOS    rv = delete_area(mm->area);#else    rv = munmap(mm->mm, mm->size);#endif    mm->mm = (void *)-1;    if (rv == 0) {        return APR_SUCCESS;    }    return errno;}
开发者ID:ohmann,项目名称:checkapi,代码行数:28,


示例4: remove_tasks

static apr_status_t remove_tasks(apr_thread_pool_t *me, void *owner){    apr_thread_pool_task_t *t_loc;    apr_thread_pool_task_t *next;    int seg;    t_loc = APR_RING_FIRST(me->tasks);    while (t_loc != APR_RING_SENTINEL(me->tasks, apr_thread_pool_task, link)) {        next = APR_RING_NEXT(t_loc, link);        if (t_loc->owner == owner) {            --me->task_cnt;            seg = TASK_PRIORITY_SEG(t_loc);            if (t_loc == me->task_idx[seg]) {                me->task_idx[seg] = APR_RING_NEXT(t_loc, link);                if (me->task_idx[seg] == APR_RING_SENTINEL(me->tasks,                                                           apr_thread_pool_task,                                                           link)                    || TASK_PRIORITY_SEG(me->task_idx[seg]) != seg) {                    me->task_idx[seg] = NULL;                }            }            APR_RING_REMOVE(t_loc, link);        }        t_loc = next;    }    return APR_SUCCESS;}
开发者ID:accre,项目名称:lstore-apr-util-accre,代码行数:27,


示例5: rtsp_server_connection_close

/** Close connection */static apt_bool_t rtsp_server_connection_close(rtsp_server_t *server, rtsp_server_connection_t *rtsp_connection){	apr_size_t remaining_sessions = 0;	if(!rtsp_connection || !rtsp_connection->sock) {		return FALSE;	}	apt_log(RTSP_LOG_MARK,APT_PRIO_INFO,"Close RTSP Connection %s",rtsp_connection->id);	apt_poller_task_descriptor_remove(server->task,&rtsp_connection->sock_pfd);	apr_socket_close(rtsp_connection->sock);	rtsp_connection->sock = NULL;	APR_RING_REMOVE(rtsp_connection,link);	remaining_sessions = apr_hash_count(rtsp_connection->session_table);	if(remaining_sessions) {		rtsp_server_session_t *session;		void *val;		apr_hash_index_t *it;		apt_log(RTSP_LOG_MARK,APT_PRIO_NOTICE,"Terminate Remaining RTSP Sessions [%"APR_SIZE_T_FMT"]",			remaining_sessions);		it = apr_hash_first(rtsp_connection->pool,rtsp_connection->session_table);		for(; it; it = apr_hash_next(it)) {			apr_hash_this(it,NULL,NULL,&val);			session = val;			if(session && session->terminating == FALSE) {				rtsp_server_session_terminate_request(server,session);			}		}	}	else {		rtsp_server_connection_destroy(rtsp_connection);	}	return TRUE;}
开发者ID:unispeech,项目名称:unimrcp,代码行数:35,


示例6: APR_RING_FIRST

/** * Grab a resource from the front of the resource list. * Assumes: that the reslist is locked. */static apr_res_t *pop_resource(apr_reslist_t *reslist){    apr_res_t *res;    res = APR_RING_FIRST(&reslist->avail_list);    APR_RING_REMOVE(res, link);    reslist->nidle--;    return res;}
开发者ID:AAthresh,项目名称:quantlib,代码行数:12,


示例7: end_gen

static void end_gen(mpm_gen_info_t *gi){    ap_log_error(APLOG_MARK, APLOG_TRACE4, 0, ap_server_conf,                 "end of generation %d", gi->gen);    ap_run_end_generation(ap_server_conf, gi->gen);    APR_RING_REMOVE(gi, link);    APR_RING_INSERT_HEAD(unused_geninfo, gi, mpm_gen_info_t, link);}
开发者ID:pexip,项目名称:os-apache2,代码行数:8,


示例8: do_wait

static apr_status_t do_wait(apr_thread_cond_t *cond, apr_thread_mutex_t *mutex,                            apr_interval_time_t timeout){    struct waiter_t *wait;    thread_id cth = find_thread(NULL);    apr_status_t rv;    int flags = B_RELATIVE_TIMEOUT;        /* We must be the owner of the mutex or we can't do this... */        if (mutex->owner != cth) {        /* What should we return??? */        return APR_EINVAL;    }    acquire_sem(cond->lock);    wait = APR_RING_FIRST(&cond->flist);    if (wait)        APR_RING_REMOVE(wait, link);    else        wait = make_waiter(cond->pool);       APR_RING_INSERT_TAIL(&cond->alist, wait, waiter_t, link);    cond->condlock = mutex;    release_sem(cond->lock);           apr_thread_mutex_unlock(cond->condlock);    if (timeout == 0)        flags = 0;            rv = acquire_sem_etc(wait->sem, 1, flags, timeout);    apr_thread_mutex_lock(cond->condlock);        if (rv != B_OK) {        if (rv == B_TIMED_OUT)            return APR_TIMEUP;        return rv;           }    acquire_sem(cond->lock);    APR_RING_REMOVE(wait, link);    APR_RING_INSERT_TAIL(&cond->flist, wait, waiter_t, link);    release_sem(cond->lock);        return APR_SUCCESS;}
开发者ID:cmjonze,项目名称:apr,代码行数:46,


示例9: APT_DECLARE

APT_DECLARE(apt_list_elem_t*) apt_list_elem_remove(apt_obj_list_t *list, apt_list_elem_t *elem){	apt_list_elem_t *next_elem = APR_RING_NEXT(elem,link);	APR_RING_REMOVE(elem,link);	if(next_elem == APR_RING_SENTINEL(&list->head,apt_list_elem_t,link)) {		next_elem = NULL;	}	return next_elem;}
开发者ID:Deepwalker,项目名称:FreeSWITCH,代码行数:9,


示例10: mpf_buffer_chunk_read

static APR_INLINE mpf_chunk_t* mpf_buffer_chunk_read(mpf_buffer_t *buffer){	mpf_chunk_t *chunk = NULL;	if(!APR_RING_EMPTY(&buffer->head,mpf_chunk_t,link)) {		chunk = APR_RING_FIRST(&buffer->head);		APR_RING_REMOVE(chunk,link);	}	return chunk;}
开发者ID:Jared-Prime,项目名称:UniMRCP,代码行数:9,


示例11: MPF_DECLARE

MPF_DECLARE(void) mpf_context_factory_destroy(mpf_context_factory_t *factory){	mpf_context_t *context;	while(!APR_RING_EMPTY(&factory->head, mpf_context_t, link)) {		context = APR_RING_FIRST(&factory->head);		mpf_context_destroy(context);		APR_RING_REMOVE(context, link);	}}
开发者ID:Deepwalker,项目名称:FreeSWITCH,代码行数:9,


示例12: rtsp_client_connection_destroy

/* Destroy RTSP connection */static apt_bool_t rtsp_client_connection_destroy(rtsp_client_connection_t *rtsp_connection){	rtsp_client_t *client = rtsp_connection->client;	APR_RING_REMOVE(rtsp_connection,link);	rtsp_client_connection_close(client,rtsp_connection);	apt_log(RTSP_LOG_MARK,APT_PRIO_NOTICE,"Destroy RTSP Connection %s",rtsp_connection->id);	apr_pool_destroy(rtsp_connection->pool);	return TRUE;}
开发者ID:unispeech,项目名称:unimrcp,代码行数:11,


示例13: ap_queue_pop_something

/** * Retrieves the next available socket from the queue. If there are no * sockets available, it will block until one becomes available. * Once retrieved, the socket is placed into the address specified by * 'sd'. */apr_status_t ap_queue_pop_something(fd_queue_t * queue, apr_socket_t ** sd,                                    event_conn_state_t ** ecs, apr_pool_t ** p,                                    timer_event_t ** te_out){    fd_queue_elem_t *elem;    apr_status_t rv;    if ((rv = apr_thread_mutex_lock(queue->one_big_mutex)) != APR_SUCCESS) {        return rv;    }    /* Keep waiting until we wake up and find that the queue is not empty. */    if (ap_queue_empty(queue)) {        if (!queue->terminated) {            apr_thread_cond_wait(queue->not_empty, queue->one_big_mutex);        }        /* If we wake up and it's still empty, then we were interrupted */        if (ap_queue_empty(queue)) {            rv = apr_thread_mutex_unlock(queue->one_big_mutex);            if (rv != APR_SUCCESS) {                return rv;            }            if (queue->terminated) {                return APR_EOF; /* no more elements ever again */            }            else {                return APR_EINTR;            }        }    }    *te_out = NULL;    if (!APR_RING_EMPTY(&queue->timers, timer_event_t, link)) {        *te_out = APR_RING_FIRST(&queue->timers);        APR_RING_REMOVE(*te_out, link);    }    else {        elem = &queue->data[queue->out];        queue->out++;        if (queue->out >= queue->bounds)            queue->out -= queue->bounds;        queue->nelts--;        *sd = elem->sd;        *ecs = elem->ecs;        *p = elem->p;#ifdef AP_DEBUG        elem->sd = NULL;        elem->p = NULL;#endif /* AP_DEBUG */    }    rv = apr_thread_mutex_unlock(queue->one_big_mutex);    return rv;}
开发者ID:AzerTyQsdF,项目名称:osx,代码行数:61,


示例14: impl_pollset_add

static apr_status_t impl_pollset_add(apr_pollset_t *pollset,                                     const apr_pollfd_t *descriptor){    apr_os_sock_t fd;    pfd_elem_t *elem;    apr_status_t rv = APR_SUCCESS;    pollset_lock_rings();    if (!APR_RING_EMPTY(&(pollset->p->free_ring), pfd_elem_t, link)) {        elem = APR_RING_FIRST(&(pollset->p->free_ring));        APR_RING_REMOVE(elem, link);    }    else {        elem = (pfd_elem_t *) apr_palloc(pollset->pool, sizeof(pfd_elem_t));        APR_RING_ELEM_INIT(elem, link);    }    elem->pfd = *descriptor;    if (descriptor->desc_type == APR_POLL_SOCKET) {        fd = descriptor->desc.s->socketdes;    }    else {        fd = descriptor->desc.f->filedes;    }    if (descriptor->reqevents & APR_POLLIN) {        EV_SET(&pollset->p->kevent, fd, EVFILT_READ, EV_ADD, 0, 0, elem);        if (kevent(pollset->p->kqueue_fd, &pollset->p->kevent, 1, NULL, 0,                   NULL) == -1) {            rv = apr_get_netos_error();        }    }    if (descriptor->reqevents & APR_POLLOUT && rv == APR_SUCCESS) {        EV_SET(&pollset->p->kevent, fd, EVFILT_WRITE, EV_ADD, 0, 0, elem);        if (kevent(pollset->p->kqueue_fd, &pollset->p->kevent, 1, NULL, 0,                   NULL) == -1) {            rv = apr_get_netos_error();        }    }    if (rv == APR_SUCCESS) {        APR_RING_INSERT_TAIL(&(pollset->p->query_ring), elem, pfd_elem_t, link);    }    else {        APR_RING_INSERT_TAIL(&(pollset->p->free_ring), elem, pfd_elem_t, link);    }    pollset_unlock_rings();    return rv;}
开发者ID:Ga-vin,项目名称:apache,代码行数:55,


示例15: assert

/** * Get an empty resource container from the free list. */static apr_res_t *get_container(apr_reslist_t *reslist){    apr_res_t *res;    assert(!APR_RING_EMPTY(&reslist->free_list, apr_res_t, link));    res = APR_RING_FIRST(&reslist->free_list);    APR_RING_REMOVE(res, link);    return res;}
开发者ID:Garridon,项目名称:windowsrtdev,代码行数:14,


示例16: apt_timer_remove

static apt_bool_t apt_timer_remove(apt_timer_queue_t *timer_queue, apt_timer_t *timer){	/* remove node (timer) from the list */	APR_RING_REMOVE(timer,link);	timer->scheduled_time = 0;	if(APR_RING_EMPTY(&timer_queue->head, apt_timer_t, link)) {		/* reset elapsed time if no timers set */		timer_queue->elapsed_time = 0;	}	return TRUE;}
开发者ID:odmanV2,项目名称:freecenter,代码行数:12,


示例17: impl_pollset_remove

static apr_status_t impl_pollset_remove(apr_pollset_t *pollset,                                        const apr_pollfd_t *descriptor){    pfd_elem_t *ep;    apr_status_t rv = APR_SUCCESS;#ifdef HAVE_MTCP	struct mtcp_epoll_event ev = {0};#else	struct epoll_event ev = {0}; /* ignored, but must be passed with                                  * kernel < 2.6.9                                  */#endif	int ret = -1;    if (descriptor->desc_type == APR_POLL_SOCKET) {#ifdef HAVE_MTCP		int cpu = sched_getcpu();		ret = mtcp_epoll_ctl(g_mctx[cpu], pollset->p->epoll_fd, EPOLL_CTL_DEL,                        descriptor->desc.s->socketdes, &ev);#else 		ret = epoll_ctl(pollset->p->epoll_fd, EPOLL_CTL_DEL,				descriptor->desc.s->socketdes, &ev);#endif    }    else {        ret = epoll_ctl(pollset->p->epoll_fd, EPOLL_CTL_DEL,                        descriptor->desc.f->filedes, &ev);    }    if (ret < 0) {        rv = APR_NOTFOUND;    }    if (!(pollset->flags & APR_POLLSET_NOCOPY)) {        pollset_lock_rings();        for (ep = APR_RING_FIRST(&(pollset->p->query_ring));             ep != APR_RING_SENTINEL(&(pollset->p->query_ring),                                     pfd_elem_t, link);             ep = APR_RING_NEXT(ep, link)) {                            if (descriptor->desc.s == ep->pfd.desc.s) {                APR_RING_REMOVE(ep, link);                APR_RING_INSERT_TAIL(&(pollset->p->dead_ring),                                     ep, pfd_elem_t, link);                break;            }        }        pollset_unlock_rings();    }    return rv;}
开发者ID:ATCP,项目名称:mtcp,代码行数:53,


示例18: APR_RING_FIRST

/* * NOTE: This function is not thread safe by itself. Caller should hold the lock */static apr_thread_pool_task_t *pop_task(apr_thread_pool_t * me){    apr_thread_pool_task_t *task = NULL;    int seg;    /* check for scheduled tasks */    if (me->scheduled_task_cnt > 0) {        task = APR_RING_FIRST(me->scheduled_tasks);        assert(task != NULL);        assert(task !=               APR_RING_SENTINEL(me->scheduled_tasks, apr_thread_pool_task,                                 link));        /* if it's time */        if (task->dispatch.time <= apr_time_now()) {            --me->scheduled_task_cnt;            APR_RING_REMOVE(task, link);            return task;        }    }    /* check for normal tasks if we're not returning a scheduled task */    if (me->task_cnt == 0) {        return NULL;    }    task = APR_RING_FIRST(me->tasks);    assert(task != NULL);    assert(task != APR_RING_SENTINEL(me->tasks, apr_thread_pool_task, link));    --me->task_cnt;    seg = TASK_PRIORITY_SEG(task);    if (task == me->task_idx[seg]) {        me->task_idx[seg] = APR_RING_NEXT(task, link);        if (me->task_idx[seg] == APR_RING_SENTINEL(me->tasks,                                                   apr_thread_pool_task, link)            || TASK_PRIORITY_SEG(me->task_idx[seg]) != seg) {            me->task_idx[seg] = NULL;        }    }    APR_RING_REMOVE(task, link);    return task;}
开发者ID:accre,项目名称:lstore-apr-util-accre,代码行数:43,


示例19: impl_pollset_add

static apr_status_t impl_pollset_add(apr_pollset_t *pollset,                                     const apr_pollfd_t *descriptor){    apr_os_sock_t fd;    pfd_elem_t *elem;    int res;    apr_status_t rv = APR_SUCCESS;    pollset_lock_rings();    if (!APR_RING_EMPTY(&(pollset->p->free_ring), pfd_elem_t, link)) {        elem = APR_RING_FIRST(&(pollset->p->free_ring));        APR_RING_REMOVE(elem, link);    }    else {        elem = (pfd_elem_t *) apr_palloc(pollset->pool, sizeof(pfd_elem_t));        APR_RING_ELEM_INIT(elem, link);        elem->on_query_ring = 0;    }    elem->pfd = *descriptor;    if (descriptor->desc_type == APR_POLL_SOCKET) {        fd = descriptor->desc.s->socketdes;    }    else {        fd = descriptor->desc.f->filedes;    }    /* If another thread is polling, notify the kernel immediately; otherwise,     * wait until the next call to apr_pollset_poll().     */    if (apr_atomic_read32(&pollset->p->waiting)) {        res = port_associate(pollset->p->port_fd, PORT_SOURCE_FD, fd,                              get_event(descriptor->reqevents), (void *)elem);        if (res < 0) {            rv = apr_get_netos_error();            APR_RING_INSERT_TAIL(&(pollset->p->free_ring), elem, pfd_elem_t, link);        }        else {            elem->on_query_ring = 1;            APR_RING_INSERT_TAIL(&(pollset->p->query_ring), elem, pfd_elem_t, link);        }    }     else {        APR_RING_INSERT_TAIL(&(pollset->p->add_ring), elem, pfd_elem_t, link);    }    pollset_unlock_rings();    return rv;}
开发者ID:Ga-vin,项目名称:apache,代码行数:52,


示例20: impl_pollset_add

static apr_status_t impl_pollset_add(apr_pollset_t *pollset,                                     const apr_pollfd_t *descriptor){    struct epoll_event ev = {0};    int ret = -1;    pfd_elem_t *elem = NULL;    apr_status_t rv = APR_SUCCESS;    ev.events = get_epoll_event(descriptor->reqevents);    if (pollset->flags & APR_POLLSET_NOCOPY) {        ev.data.ptr = (void *)descriptor;    }    else {        pollset_lock_rings();        if (!APR_RING_EMPTY(&(pollset->p->free_ring), pfd_elem_t, link)) {            elem = APR_RING_FIRST(&(pollset->p->free_ring));            APR_RING_REMOVE(elem, link);        }        else {            elem = (pfd_elem_t *) apr_palloc(pollset->pool, sizeof(pfd_elem_t));            APR_RING_ELEM_INIT(elem, link);        }        elem->pfd = *descriptor;        ev.data.ptr = elem;    }    if (descriptor->desc_type == APR_POLL_SOCKET) {        ret = epoll_ctl(pollset->p->epoll_fd, EPOLL_CTL_ADD,                        descriptor->desc.s->socketdes, &ev);    }    else {        ret = epoll_ctl(pollset->p->epoll_fd, EPOLL_CTL_ADD,                        descriptor->desc.f->filedes, &ev);    }    if (0 != ret) {        rv = apr_get_netos_error();    }    if (!(pollset->flags & APR_POLLSET_NOCOPY)) {        if (rv != APR_SUCCESS) {            APR_RING_INSERT_TAIL(&(pollset->p->free_ring), elem, pfd_elem_t, link);        }        else {            APR_RING_INSERT_TAIL(&(pollset->p->query_ring), elem, pfd_elem_t, link);        }        pollset_unlock_rings();    }    return rv;}
开发者ID:Leon555,项目名称:Library-src,代码行数:52,


示例21: impl_pollset_remove

static apr_status_t impl_pollset_remove(apr_pollset_t *pollset,                                        const apr_pollfd_t *descriptor){    pfd_elem_t *ep;    apr_status_t rv;    apr_os_sock_t fd;    pollset_lock_rings();    if (descriptor->desc_type == APR_POLL_SOCKET) {        fd = descriptor->desc.s->socketdes;    }    else {        fd = descriptor->desc.f->filedes;    }    rv = APR_NOTFOUND; /* unless at least one of the specified conditions is */    if (descriptor->reqevents & APR_POLLIN) {        EV_SET(&pollset->p->kevent, fd, EVFILT_READ, EV_DELETE, 0, 0, NULL);        if (kevent(pollset->p->kqueue_fd, &pollset->p->kevent, 1, NULL, 0,                   NULL) != -1) {            rv = APR_SUCCESS;        }    }    if (descriptor->reqevents & APR_POLLOUT) {        EV_SET(&pollset->p->kevent, fd, EVFILT_WRITE, EV_DELETE, 0, 0, NULL);        if (kevent(pollset->p->kqueue_fd, &pollset->p->kevent, 1, NULL, 0,                   NULL) != -1) {            rv = APR_SUCCESS;        }    }    for (ep = APR_RING_FIRST(&(pollset->p->query_ring));         ep != APR_RING_SENTINEL(&(pollset->p->query_ring),                                 pfd_elem_t, link);         ep = APR_RING_NEXT(ep, link)) {        if (descriptor->desc.s == ep->pfd.desc.s) {            APR_RING_REMOVE(ep, link);            APR_RING_INSERT_TAIL(&(pollset->p->dead_ring),                                 ep, pfd_elem_t, link);            break;        }    }    pollset_unlock_rings();    return rv;}
开发者ID:Ga-vin,项目名称:apache,代码行数:52,


示例22: mrcp_client_agent_connection_remove

static apt_bool_t mrcp_client_agent_connection_remove(mrcp_connection_agent_t *agent, mrcp_connection_t *connection){	/* remove from the list */	APR_RING_REMOVE(connection,link);	if(connection->sock) {		apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Close TCP/MRCPv2 Connection %s",connection->id);		apt_poller_task_descriptor_remove(agent->task,&connection->sock_pfd);		apr_socket_close(connection->sock);		connection->sock = NULL;	}	return TRUE;}
开发者ID:odmanV2,项目名称:freecenter,代码行数:13,


示例23: APR_DECLARE

APR_DECLARE(apr_status_t) apr_thread_cond_broadcast(apr_thread_cond_t *cond){    struct waiter_t *wake;        acquire_sem(cond->lock);    while (! APR_RING_EMPTY(&cond->alist, waiter_t, link)) {        wake = APR_RING_FIRST(&cond->alist);        APR_RING_REMOVE(wake, link);        release_sem(wake->sem);        APR_RING_INSERT_TAIL(&cond->flist, wake, waiter_t, link);    }    release_sem(cond->lock);        return APR_SUCCESS;}
开发者ID:Garridon,项目名称:windowsrtdev,代码行数:15,


示例24: remove_scheduled_tasks

static apr_status_t remove_scheduled_tasks(apr_thread_pool_t *me,                                           void *owner){    apr_thread_pool_task_t *t_loc;    apr_thread_pool_task_t *next;    t_loc = APR_RING_FIRST(me->scheduled_tasks);    while (t_loc !=           APR_RING_SENTINEL(me->scheduled_tasks, apr_thread_pool_task,                             link)) {        next = APR_RING_NEXT(t_loc, link);        /* if this is the owner remove it */        if (t_loc->owner == owner) {            --me->scheduled_task_cnt;            APR_RING_REMOVE(t_loc, link);        }        t_loc = next;    }    return APR_SUCCESS;}
开发者ID:accre,项目名称:lstore-apr-util-accre,代码行数:20,


示例25: APT_DECLARE

/** Kill timer */APT_DECLARE(apt_bool_t) apt_timer_kill(apt_timer_t *timer){    apt_timer_queue_t *queue = timer->queue;    if(!timer->scheduled_time) {        return FALSE;    }#ifdef APT_TIMER_DEBUG    apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"Kill Timer 0x%x [%u]",timer,timer->scheduled_time);#endif    /* remove node (timer) from the list */    APR_RING_REMOVE(timer,link);    timer->scheduled_time = 0;    if(APR_RING_EMPTY(&queue->head, apt_timer_t, link)) {        /* reset elapsed time if no timers set */        queue->elapsed_time = 0;    }    return TRUE;}
开发者ID:Jared-Prime,项目名称:UniMRCP,代码行数:22,



注:本文中的APR_RING_REMOVE函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ APR_RING_SENTINEL函数代码示例
C++ APR_RING_NEXT函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。