Logo Search packages:      
Sourcecode: maxdb-7.5.00 version File versions

void RTEHSS_StandbyNodeList::RemoveNode ( SAPDB_Int4  nodeIndex  ) 

Remove a node from list of known active nodes.

Remove a node from list of known nodes.

Updates timeOfRemoveNode and sets state to 'Removed'.

Parameters:
nodeIndex [in] index node to mark as removed (result of FindNode call)
nodeName [in] node to remove

Definition at line 232 of file RTEHSS_StandbyNodeList.cpp.

References m_ListModificationCounter, m_NodeList, m_Spinlock, RTEHSS_StandbyNodeList::Statistic::nodeState, RTESys_MicroSecondTime(), StateRemoved, StateWaitForSynchronize, and RTEHSS_StandbyNodeList::Statistic::timeOfRemoveNode.

Referenced by Kernel_Administration::RemoveStandby().

{
    Statistic *nodeEntry;
    SAPDB_UInt8 now = RTESys_MicroSecondTime();
    {
        RTESync_LockedScope Lock(m_Spinlock);
        nodeEntry = m_NodeList[nodeIndex];

        if ( StateRemoved == nodeEntry->nodeState )
        {
            return; // remove only once...
        }

        if ( StateWaitForSynchronize == nodeEntry->nodeState )
        {
            --m_ListModificationCounter;
        }

        nodeEntry->nodeState = StateRemoved;
        nodeEntry->timeOfRemoveNode = now;
    }
}


Generated by  Doxygen 1.6.0   Back to index