| CSocketThreadManager:: GetMostAvailableThread() |

Private Function | Declared in: SocketThreadManager.h

## Declaration

    int GetMostAvailableThread() const;

## Description

Get 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

Class Overview | CSpoofBase | Hierarchy Chart

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.