![]() |
GetMostAvailableThread() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Private Function |
Declared in: SocketThreadManager.h |
int GetMostAvailableThread() const;
Get the freeiest thread
try { //Start position int iStartPosition; iStartPosition=1; int iIndex; iIndex=0; //Check for freezing while (m_pThreadData[iIndex].bFreeze && iIndex<m_iThreadCount) { //Release the freeze m_pThreadData[iIndex].bFreeze=FALSE; ++iIndex; ++iStartPosition; } //Check we aren't in the end if (iIndex==m_iThreadCount) return GetMostAvailableThread(); //Start searching the threads for (int iCounter=iStartPosition;iCounter<m_iThreadCount;++iCounter) //Check is it larger if (m_pThreadData[iCounter].iSocketCount<m_pThreadData[iIndex].iSocketCount && m_pThreadData[iCounter].pThread->GetThreadID()) //Check if is freezed if (m_pThreadData[iCounter].bFreeze) //Release the freeze m_pThreadData[iCounter].bFreeze=FALSE; else //Set the new index iIndex=iCounter; //Return the value return iIndex+1; } ERROR_HANDLER_RETURN("GetMostAvailableThread",0)
![]() |
Site content copyright © 2001 Barak Weichselbaum. See the About page for additional notices. This page last updated: 27 Jun 2001. |