示例#1
0
// =============================================================================
// 函数功能:  Socket_Free
//           释放套接字内存空间
// 输入参数: fd, 待释放的套接字
// 输出参数: 无
// 返回值  :无
// 说明    :
// =============================================================================
bool_t Socket_Free(tagSocket *sockfd)
{
    if(NULL != sockfd)
    {
        Lock_MutexDelete(sockfd->sync);
        sockfd->valid = false;
        sockfd->socktype = EN_SOCKET_NOTSURE;

        Mb_Free(pgSocketPool, (void *)sockfd);
        return true;
    }
    else
    {
        return false;
    }
}
示例#2
0
//----删除一个主窗口数据结构-----------------------------------------------------
//描述:该函数为内部调用,除了释放窗口结构内存,还将自己丛父窗口去移除.
//参数:需要删除的主窗口句柄
//返回:无.
//------------------------------------------------------------------------------
void _DeleteMainWindowData(HWND hwnd)
{
    WINDOW *prev,*next;

    //GDD_Lock();

    prev =hwnd->Prev;
    next =hwnd->Next;

    if(NULL!=next)
    {
        next->Prev =prev;
    }

    if(NULL!=prev)
    {
        prev->Next =next;
    }
    else
    {
        hwnd->Parent->Child =NULL;
    }

    hwnd->Prev =NULL;
    hwnd->Next =NULL;

    list_remove(&hwnd->node_msg_close);
    list_remove(&hwnd->node_msg_ncpaint);
    list_remove(&hwnd->node_msg_paint);

    _RemoveWindowTimer(hwnd);
    GUI_DeleteMsgQ(hwnd->pMsgQ);
    UpdateDisplay();
    GK_ApiDestroyWin(hwnd->pGkWin);
    UpdateDisplay();
    free(hwnd->pGkWin);
    hwnd->pGkWin =NULL;

    Lock_MutexDelete(hwnd->mutex_lock);
    hwnd->mutex_lock =NULL;
    WIN_Free(hwnd);

    //GDD_Unlock();
}