コード例 #1
0
ret_t
cherokee_handler_proxy_conn_release (cherokee_handler_proxy_conn_t *pconn)
{
	ret_t                          ret;
	cherokee_handler_proxy_poll_t *poll = pconn->poll_ref;

	CHEROKEE_MUTEX_LOCK (&poll->mutex);
	ret = poll_release (poll, pconn);
	CHEROKEE_MUTEX_UNLOCK (&poll->mutex);

	return ret;
}
コード例 #2
0
ファイル: net.cpp プロジェクト: setlin/jserver
// delete a net net pool
void net_delete(struct net_pool** pnp)
{
    struct net_pool* np = *pnp;
    // the array exist or not
    if(np->ns)
    {
        int i = 0;
        for(; i < np->cap; ++i)
        {
            if(np->ns[i]->status != SOCKET_STATUS_INVALID)
            {
                socket_close(np->ns[i]->fd);
            }
            // TODO: free the buffer
            rbuffer_delete(&(np->ns[i]->rbuff));
            wbuffer_delete(&(np->ns[i]->wbuff));
            free(np->ns[i]);
            np->ns[i] = NULL;
        }

        free(np->ns);
        np->ns = NULL;
    }

    np->cap = 0;
    np->count = 0;

    if(!poll_invalid(np->eventfd))
    {
        poll_release(np->eventfd);
    }

    np->allocid = 0;
    np->eventfd = 0;
    np->eventindex = 0;
    np->eventn = 0;

    delete np->prothandler;
    delete np->onlineconnidtocharid;
    delete np->onlinecharidtoconnid;

    np->serverid = -1;

    free(*pnp);
    *pnp = NULL;
}