version 1.190.2.1, 2006/10/10 04:56:42
|
version 1.190.2.2, 2006/10/10 09:49:06
|
|
|
static struct timeval lastIdleCleanupTime = {0, 0}; | static struct timeval lastIdleCleanupTime = {0, 0}; |
struct timeval now; | struct timeval now; |
Time::gettimeofday(&now); | Time::gettimeofday(&now); |
|
|
|
#ifdef PEGASUS_SLP_REG_TIMEOUT |
|
static struct timeval lastReregistrationTime = {0, 0}; |
|
const char * reRegTime = getenv("PEG_SLP_REG_TIMEOUT"); |
|
if (now.tv_sec - lastReregistrationTime.tv_sec > (atoi(reRegTime) * 60)) |
|
{ |
|
lastReregistrationTime.tv_sec = now.tv_sec; |
|
startSLPProvider(); |
|
} |
|
#endif |
|
|
if (now.tv_sec - lastIdleCleanupTime.tv_sec >= 100) | if (now.tv_sec - lastIdleCleanupTime.tv_sec >= 100) |
{ | { |
lastIdleCleanupTime.tv_sec = now.tv_sec; | lastIdleCleanupTime.tv_sec = now.tv_sec; |
try | try |
{ | { |
#ifdef PEGASUS_SLP_REG_TIMEOUT // Re-register after the time period. |
|
startSLPProvider(); |
|
#endif |
|
_providerManager->unloadIdleProviders(); | _providerManager->unloadIdleProviders(); |
MessageQueueService::get_thread_pool()->cleanupIdleThreads(); | MessageQueueService::get_thread_pool()->cleanupIdleThreads(); |
} | } |