code: def get_waiting_components(self):
          # type: () -> List[Tuple[str, str, Set[str]]]
          
          with self.__instances_lock:
              result = []
              for name, (context, _) in self.__waiting_handlers.items():
                  # Compute missing handlers
                  missing = set(context.factory_context.get_handlers_ids())
                  missing.difference_update(self._handlers.keys())
  
                  result.append((name, context.factory_context.name, missing))
  
              result.sort()
              return result
docs: Returns the list of the instances waiting for their handlers
  
          :return: A list of (name, factory name, missing handlers) tuples