(file) Return to BasicProviderManagerRouter.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / ProviderManager2 / Attic

Diff for /pegasus/src/Pegasus/ProviderManager2/Attic/BasicProviderManagerRouter.cpp between version 1.4 and 1.5

version 1.4, 2004/06/03 21:57:03 version 1.5, 2004/06/04 02:23:58
Line 237 
Line 237 
     if (request->getType() == CIM_STOP_ALL_PROVIDERS_REQUEST_MESSAGE)     if (request->getType() == CIM_STOP_ALL_PROVIDERS_REQUEST_MESSAGE)
     {     {
         // Send CIMStopAllProvidersRequestMessage to all ProviderManagers         // Send CIMStopAllProvidersRequestMessage to all ProviderManagers
           ReadLock tableLock(_providerManagerTableLock);
         for (Uint32 i = 0, n = _providerManagerTable.size(); i < n; i++)         for (Uint32 i = 0, n = _providerManagerTable.size(); i < n; i++)
         {         {
             ProviderManagerContainer* pmc=_providerManagerTable[i];             ProviderManagerContainer* pmc=_providerManagerTable[i];
Line 350 
Line 351 
     return 0;     return 0;
 } }
  
 void BasicProviderManagerRouter::unload_idle_providers(void)  Boolean BasicProviderManagerRouter::hasActiveProviders()
 { {
     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,     PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,
         "BasicProviderManagerRouter::unload_idle_providers");          "BasicProviderManagerRouter::hasActiveProviders");
  
       ReadLock tableLock(_providerManagerTableLock);
     for(Uint32 i = 0, n = _providerManagerTable.size(); i < n; i++)     for(Uint32 i = 0, n = _providerManagerTable.size(); i < n; i++)
     {     {
         ProviderManagerContainer* pmc = _providerManagerTable[i];         ProviderManagerContainer* pmc = _providerManagerTable[i];
         pmc->getProviderManager()->unload_idle_providers();          if (pmc->getProviderManager()->hasActiveProviders())
           {
               PEG_METHOD_EXIT();
               return true;
           }
       }
   
       PEG_METHOD_EXIT();
       return false;
   }
   
   void BasicProviderManagerRouter::unloadIdleProviders()
   {
       PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,
           "BasicProviderManagerRouter::unloadIdleProviders");
   
       //
       // Save pointers to the ProviderManagerContainers so we don't hold the
       // _providerManagerTableLock while unloading idle providers
       //
       Array<ProviderManagerContainer*> pmcs;
       {
           ReadLock tableLock(_providerManagerTableLock);
           for(Uint32 i = 0, n = _providerManagerTable.size(); i < n; i++)
           {
               pmcs.append(_providerManagerTable[i]);
           }
       }
   
       //
       // Unload idle providers in each of the active ProviderManagers
       // _providerManagerTableLock while unloading idle providers
       //
       for (Uint32 i = 0; i < pmcs.size(); i++)
       {
           pmcs[i]->getProviderManager()->unloadIdleProviders();
     }     }
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();


Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2