Пример #1
0
void async_task_queue_destroy(async_task_queue_t *task_queue)
{
    struct async_task *task;
    
    if (NULL == task_queue)
    {
        return;
    }

    while (NULL != task_queue->async_task)
    {
        task = task_queue->async_task;
        task_queue->async_task = task->next;
        free(task);
    }

    channel_detach(task_queue->channel);
    channel_destroy(task_queue->channel);
    closesocket(task_queue->fds[0]);
    closesocket(task_queue->fds[1]);

    lock_uninit(&task_queue->task_lock);

    free(task_queue);
    
    return;
}
Пример #2
0
static inline
void delete_udp_peer(udp_peer_t* peer)
{
    channel_detach(peer->channel);
    channel_destroy(peer->channel);
    closesocket(peer->fd);
    free(peer);
    
    return;
}
Пример #3
0
void tcp_connection_detach(tcp_connection_t *connection)
{
    if (NULL == connection)
    {
        return;
    }
    
    log_debug("tcp_connection_detach: fd(%d)", connection->fd);

    channel_detach(connection->channel);
    connection->loop = NULL;

    return;
}
Пример #4
0
static 
void delete_connection(tcp_connection_t *connection)
{
	log_debug("connection to %s:%u will be destroyed", connection->peer_addr.ip, connection->peer_addr.port);

	channel_detach(connection->channel);
	channel_destroy(connection->channel);
	shutdown(connection->fd, SHUT_RDWR);
	close(connection->fd);
	buffer_destory(connection->in_buffer);
	buffer_destory(connection->out_buffer);
	free(connection);

    return;
}
Пример #5
0
static
void do_tcp_server_stop(void* userdata)
{
    tcp_server_t *server = (tcp_server_t*)userdata;

    channel_detach(server->channel);
    channel_destroy(server->channel);
    server->channel = NULL;
    close(server->idle_fd);
    server->idle_fd = -1;
    close(server->fd);
    server->fd = -1;
    server->is_started = 0;

    return;
}