| 
               m_lsBusyList.push_back(pConnectHandle);        }        else //特殊情况,闲队列中为空,返回为空        {               pConnectHandle = 0;        }        m_ListMutex.release();          return pConnectHandle; }   //从使用队列中释放一个使用完毕的句柄,插入到空闲队列 void CDBManager::SetIdleConnectHandle(MYSQL * connecthandle) {        m_ListMutex.acquire();        m_lsBusyList.remove(connecthandle);        m_lsIdleList.push_back(connecthandle);        m_ListMutex.release(); } //使用示例,首先获取空闲句柄,利用这个句柄做真正的操作,然后再插回到空闲队列 bool CDBManager::DeleteHostCacheBySessionID(char * sessionid) {        MYSQL * pConnectHandle = GetIdleConnectHandle();        if(!pConnectHandle)               return 0;        bool bRet = DeleteHostCacheBySessionID(pConnectHandle, sessionid);        SetIdleConnectHandle(pConnectHandle);        return bRet; } //传入空闲的句柄,做真正的删除操作 bool CDBManager::DeleteHostCacheBySessionID(MYSQL * connecthandle, char * sessionid) {        char deleteSQL[SQL_LENGTH];        memset(deleteSQL, 0, sizeof(deleteSQL));        sprintf(deleteSQL,"delete from HostCache where SessionID = '%s'", sessionid);        if(mysql_query(connecthandle,deleteSQL) != 0) //删除               return false;        return true; } 
 |