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

Diff for /pegasus/src/Pegasus/ProviderManager2/CMPI/CMPILocalProviderManager.cpp between version 1.35.2.2 and 1.36

version 1.35.2.2, 2006/07/28 20:50:01 version 1.36, 2006/08/02 20:20:18
Line 42 
Line 42 
 #include "CMPI_Version.h" #include "CMPI_Version.h"
  
 #include <Pegasus/Common/Constants.h> #include <Pegasus/Common/Constants.h>
 #include <Pegasus/Common/Time.h>  
 #include <Pegasus/Common/Tracer.h> #include <Pegasus/Common/Tracer.h>
 #include <Pegasus/Common/PegasusVersion.h> #include <Pegasus/Common/PegasusVersion.h>
  
Line 67 
Line 66 
 Semaphore CMPILocalProviderManager::_pollingSem(0); Semaphore CMPILocalProviderManager::_pollingSem(0);
 AtomicInt CMPILocalProviderManager::_stopPolling(0); AtomicInt CMPILocalProviderManager::_stopPolling(0);
 Thread *CMPILocalProviderManager::_reaperThread = 0; Thread *CMPILocalProviderManager::_reaperThread = 0;
 List<CMPILocalProviderManager::cleanupThreadRecord,Mutex> CMPILocalProviderManager::_finishedThreadList;  List<CMPILocalProviderManager::cleanupThreadRecord,RecursiveMutex> CMPILocalProviderManager::_finishedThreadList;
 Mutex CMPILocalProviderManager::_reaperMutex;  Mutex CMPILocalProviderManager::_reaperMutex(0);
  
   CMPILocalProviderManager::CMPILocalProviderManager (void):   CMPILocalProviderManager::CMPILocalProviderManager (void):
 _idle_timeout (IDLE_LIMIT) _idle_timeout (IDLE_LIMIT)
Line 326 
Line 325 
             try             try
             {             {
               struct timeval now;               struct timeval now;
               Time::gettimeofday (&now);                gettimeofday (&now, NULL);
               ProviderTable::Iterator i = myself->_providers.start ();               ProviderTable::Iterator i = myself->_providers.start ();
  
               for (; i != 0; i++)               for (; i != 0; i++)
Line 449 
Line 448 
  * The reaper function polls out the threads from the global list (_finishedThreadList),  * The reaper function polls out the threads from the global list (_finishedThreadList),
  * joins them deletes them, and removes them from the CMPIProvider specific list.  * joins them deletes them, and removes them from the CMPIProvider specific list.
  */  */
 ThreadReturnType PEGASUS_THREAD_CDECL CMPILocalProviderManager::_reaper(void *parm)  PEGASUS_THREAD_RETURN PEGASUS_THREAD_CDECL CMPILocalProviderManager::_reaper(void *parm)
 { {
   Thread *myself = reinterpret_cast<Thread *>(parm);   Thread *myself = reinterpret_cast<Thread *>(parm);
   do {   do {
Line 473 
Line 472 
                 }                 }
     }     }
   while (_stopPolling.get() == 0);   while (_stopPolling.get() == 0);
   myself->exit_self( (ThreadReturnType) 0);    myself->exit_self( (PEGASUS_THREAD_RETURN) 0);
   return (0);   return (0);
 } }
  /*  /*
Line 508 
Line 507 
       while ( (rtn = _reaperThread->run()) != PEGASUS_THREAD_OK)       while ( (rtn = _reaperThread->run()) != PEGASUS_THREAD_OK)
       {       {
                 if (rtn == PEGASUS_THREAD_INSUFFICIENT_RESOURCES)                 if (rtn == PEGASUS_THREAD_INSUFFICIENT_RESOURCES)
                         Threads::yield();                          pegasus_yield();
                 else                 else
             {             {
                         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL2, \                         PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL2, \
Line 583 
Line 582 
   PEG_METHOD_ENTER (TRC_PROVIDERMANAGER, "ProviderManager::getProvider");   PEG_METHOD_ENTER (TRC_PROVIDERMANAGER, "ProviderManager::getProvider");
   if (fileName.size() == 0)   if (fileName.size() == 0)
   {   {
         throw Exception(MessageLoaderParms("ProviderManager.CMPI.CMPILocalProviderManager.CANNOT_FIND_LIBRARY",          throw Exception(MessageLoaderParms(
             "Provider library $0 was not found.",           "ProviderManager.CMPI.CMPILocalProviderManager.CANNOT_FIND_LIBRARY",
             fileName));           "For provider $0 the library name was empty. Check provider registered location.",
            providerName));
  
   }   }
   lproviderName.append (providerName);   lproviderName.append (providerName);
Line 698 
Line 698 
  
   if (first.tv_sec == 0)   if (first.tv_sec == 0)
     {     {
       Time::gettimeofday (&first);        gettimeofday (&first, NULL);
     }     }
   Time::gettimeofday (&now);    gettimeofday (&now, NULL);
  
   if (((now.tv_sec - first.tv_sec) > IDLE_LIMIT) &&   if (((now.tv_sec - first.tv_sec) > IDLE_LIMIT) &&
       ((now.tv_sec - last.tv_sec) > IDLE_LIMIT))       ((now.tv_sec - last.tv_sec) > IDLE_LIMIT))
     {     {
       Time::gettimeofday (&last);        gettimeofday (&last, NULL);
       PEG_TRACE_STRING (TRC_PROVIDERMANAGER, Tracer::LEVEL4,       PEG_TRACE_STRING (TRC_PROVIDERMANAGER, Tracer::LEVEL4,
                         "Checking for Idle providers to unload.");                         "Checking for Idle providers to unload.");
       try       try


Legend:
Removed from v.1.35.2.2  
changed lines
  Added in v.1.36

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2