| 
					
				 | 
			
			
				@@ -56,7 +56,7 @@ void ctkPluginFrameworkListeners::addServiceSlot( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ctkServiceSlotEntry sse(plugin, receiver, slot, filter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (serviceSet.contains(sse)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    removeServiceSlot(plugin, receiver, slot); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    removeServiceSlot_unlocked(plugin, receiver, slot); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   serviceSet.insert(sse); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   checkSimple(sse); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -69,8 +69,15 @@ void ctkPluginFrameworkListeners::removeServiceSlot(QSharedPointer<ctkPlugin> pl 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                     QObject* receiver, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                     const char* slot) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  QMutexLocker lock(&mutex); Q_UNUSED(lock) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  QMutexLocker lock(&mutex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  removeServiceSlot_unlocked(plugin, receiver, slot); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//---------------------------------------------------------------------------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+void ctkPluginFrameworkListeners::removeServiceSlot_unlocked(QSharedPointer<ctkPlugin> plugin, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                             QObject* receiver, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                             const char* slot) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ctkServiceSlotEntry entryToRemove(plugin, receiver, slot); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   QMutableSetIterator<ctkServiceSlotEntry> it(serviceSet); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   while (it.hasNext()) 
			 |