예제 #1
0
파일: base.c 프로젝트: detain/swoole-src
void swoole_clear_dns_cache(void)
{
    if (swoole_dns_cache_v4)
    {
        swHashMap_free(swoole_dns_cache_v4);
        swoole_dns_cache_v4 = NULL;
    }
    if (swoole_dns_cache_v6)
    {
        swHashMap_free(swoole_dns_cache_v6);
        swoole_dns_cache_v6 = NULL;
    }
}
예제 #2
0
static void swProcessPool_free(swProcessPool *pool)
{
    int i;
    swPipe *_pipe;

    if (!pool->use_msgqueue)
    {
        for (i = 0; i < pool->worker_num; i++)
        {
            _pipe = &pool->pipes[i];
            _pipe->close(_pipe);
        }
        sw_free(pool->pipes);
    }
    else if (pool->msgqueue_key == 0)
    {
        pool->queue->remove = 1;
        swMsgQueue_free(pool->queue);
    }

    if (pool->map)
    {
        swHashMap_free(pool->map);
    }
}
예제 #3
0
파일: Table.c 프로젝트: 9618211/swoole-src
void swTable_free(swTable *table)
{
    swHashMap_free(table->columns);
    sw_free(table->iterator);
    if (table->memory)
    {
        sw_shm_free(table->memory);
    }
}
예제 #4
0
파일: timer.c 프로젝트: cophp/swoole-src
int swTimer_free(swTimer *timer)
{
	swHashMap_free(timer->list);
	if (timer->use_pipe)
	{
		return timer->pipe.close(&timer->pipe);
	}
	else
	{
		return close(timer->fd);
	}
}
예제 #5
0
파일: Table.c 프로젝트: WhoAmMe/swoole
void swTable_free(swTable *table)
{
#ifdef SW_TABLE_DEBUG
    printf("swoole_table: size=%d, conflict_count=%d, insert_count=%d\n", table->size, conflict_count, insert_count);
#endif

    swHashMap_free(table->columns);
    sw_free(table->iterator);
    if (table->memory)
    {
        sw_shm_free(table->memory);
    }
}
예제 #6
0
static void swProcessPool_free(swProcessPool *pool)
{
	int i;
	swPipe *pipe;
	for (i = 0; i < pool->worker_num; i++)
	{
		pipe = &pool->pipes[i];
		pipe->close(pipe);
	}
	sw_free(pool->workers);
	sw_free(pool->pipes);
	swHashMap_free(&pool->map);
}
예제 #7
0
void swTimeWheel_free(swTimeWheel *tw)
{
    int i;
    for (i = 0; i < tw->size; i++)
    {
        if (tw->wheel[i] != NULL)
        {
            swHashMap_free(tw->wheel[i]);
            tw->wheel[i] = NULL;
        }
    }
    sw_free(tw->wheel);
    sw_free(tw);
}
예제 #8
0
static void swTimer_free(swTimer *timer)
{
    swHashMap_free(timer->list);

    if (timer->use_pipe)
    {
        timer->pipe.close(&timer->pipe);
    }
    else if (timer->fd > 2)
    {
        if (close(timer->fd) < 0)
        {
            swSysError("close(%d) failed.", timer->fd);
        }
    }

    if (timer->root)
    {
        swTimer_node_destory(&timer->root);
    }
}
예제 #9
0
static void swProcessPool_free(swProcessPool *pool)
{
    int i;
    swPipe *_pipe;

    if (pool->pipes)
    {
        for (i = 0; i < pool->worker_num; i++)
        {
            _pipe = &pool->pipes[i];
            _pipe->close(_pipe);
        }
        sw_free(pool->pipes);
    }

    if (pool->use_msgqueue == 1 && pool->msgqueue_key == 0)
    {
        pool->queue->remove = 1;
        swMsgQueue_free(pool->queue);
    }

    if (pool->stream)
    {
        if (pool->stream->socket)
        {
            unlink(pool->stream->socket_file);
            sw_free((void*) pool->stream->socket_file);
        }
        if (pool->stream->socket)
        {
            close(pool->stream->socket);
        }
    }

    if (pool->map)
    {
        swHashMap_free(pool->map);
    }
}
예제 #10
0
파일: ProcessPool.c 프로젝트: aswnet/swoole
static void swProcessPool_free(swProcessPool *pool)
{
	sw_free(pool->workers);
	swHashMap_free(&pool->map);
}
예제 #11
0
static void swProcessPool_free(swProcessPool *ma)
{
	swProcessPool_shutdown(ma);
	sw_free(ma->workers);
	swHashMap_free(&ma->map);
}