harvester/common/src/harvestereventmanager.cpp
changeset 45 a93990e5815e
parent 36 aa5a574040a4
child 63 e538444823de
equal deleted inserted replaced
36:aa5a574040a4 45:a93990e5815e
    91         data->iRefCount--;
    91         data->iRefCount--;
    92         if ( data->iRefCount <= 0 )
    92         if ( data->iRefCount <= 0 )
    93             {
    93             {
    94             // destroy the singleton and free TLS
    94             // destroy the singleton and free TLS
    95             delete data;
    95             delete data;
       
    96             data = NULL;
    96             UserSvr::DllFreeTls( KHarvesterEventManagerTLSKey );
    97             UserSvr::DllFreeTls( KHarvesterEventManagerTLSKey );
    97             }
    98             }
    98         }
    99         }
    99     }
   100     }
   100 
   101 
   437 				{
   438 				{
   438 				serverQueueHandle = observer->iQueuePtr->Handle();
   439 				serverQueueHandle = observer->iQueuePtr->Handle();
   439 				
   440 				
   440 				iRegisteredObservers.Remove( i );
   441 				iRegisteredObservers.Remove( i );
   441 				delete observer;
   442 				delete observer;
       
   443 				observer = NULL;
   442 				}
   444 				}
   443 			// Find if any other observer is using the same queue
   445 			// Find if any other observer is using the same queue
   444 			else
   446 			else
   445 				{
   447 				{
   446 				otherObserverFound = ETrue;
   448 				otherObserverFound = ETrue;
   466 	                {
   468 	                {
   467 	                THarvesterEventQueue* queue = iEventQueues[mid];
   469 	                THarvesterEventQueue* queue = iEventQueues[mid];
   468                     iEventQueues.Remove( mid );
   470                     iEventQueues.Remove( mid );
   469                     queue->Close();
   471                     queue->Close();
   470                     delete queue;
   472                     delete queue;
       
   473                     queue = NULL;
   471                     break;
   474                     break;
   472 	                }
   475 	                }
   473 	            else if( compare > 0 )
   476 	            else if( compare > 0 )
   474 	                {
   477 	                {
   475 	                low = mid + 1;
   478 	                low = mid + 1;