code: def use_waiting_list(bundle_context):
      # type: (BundleContext) -> Any
      
      # Get the service and its reference
      ref = bundle_context.get_service_reference(SERVICE_IPOPO_WAITING_LIST)
      if ref is None:
          raise BundleException("No iPOPO waiting list service available")
  
      try:
          # Give the service
          yield bundle_context.get_service(ref)
      finally:
          try:
              # Release it
              bundle_context.unget_service(ref)
          except BundleException:
              # Service might have already been unregistered
              pass
docs: Utility context to use the iPOPO waiting list safely in a "with" block.
      It looks after the the iPOPO waiting list service and releases its
      reference when exiting the context.
  
      :param bundle_context: The calling bundle context
      :return: The iPOPO waiting list service
      :raise BundleException: Service not found