void CMPIProvider::reset()
{
+
+ _currentSubscriptions = 0;
_module = 0;
_cimom_handle = 0;
_no_unload = 0;
return currentSubscriptions;
}
-void CMPIProvider::resetSubscriptions ()
-{
- AutoMutex lock (_currentSubscriptionsMutex);
- _currentSubscriptions = 0;
-}
-
void CMPIProvider::setProviderInstance (const CIMInstance & instance)
{
_providerInstance = instance;
//Set to false when provider refused to unload due to pending operations.
Boolean disableModuleOk = true;
- // get provider module name
- Boolean disableProviderOnly = request->disableProviderOnly;
-
//
// Unload providers
//
//
if (_indicationProviders [i])
{
- if (physicalName.size () > 0)
+ // Remove from IndProvRecord table
+ IndProvRecord *rec = 0;
+ WriteLock lock(rwSemProvTab);
+ if (indProvTab.lookup(providerName, rec))
{
- try
- {
- OpProviderHolder ph =
- providerManager.getProvider(
- physicalName,
- providerName,
- moduleName);
- ph.GetProvider ().resetSubscriptions ();
-
- // Remove from IndProvRecord table
- IndProvRecord *rec = 0;
- WriteLock lock(rwSemProvTab);
- indProvTab.lookup(ph.GetProvider().getName(), rec);
- delete rec;
- indProvTab.remove(ph.GetProvider().getName());
- }
- catch (const Exception &e)
- {
- PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL1,
- "Exception during reset subscriptions on indication "
- "provider %s: %s",
- (const char*)providerName.getCString(),
- (const char*)e.getMessage().getCString()));
- }
+ delete rec;
+ indProvTab.remove(providerName);
}
}
}