![]() |
GetMostAvailableThread() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
| Private Function |
Declared in: SocketThreadManager.h |
Declarationint GetMostAvailableThread() const;
DescriptionGet the freeiest thread
Function Body
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)
See Also
This web site was generated
using Surveyor V4.50.811.1. Click
here
for more information. |
Site content copyright © 2001 Barak Weichselbaum. See the About page for additional notices. This page last updated: 27 Jun 2001. |