code: def process(self, results):
          
          for node_key, data in results:
              request = self.requests.get(node_key)
              if request is None:
                  # This may happen if we resend a request for a node after waiting too long,
                  # and then eventually get two responses with it.
                  self.logger.info(
                      "No SyncRequest found for %s, maybe we got more than one response for it"
                      % encode_hex(node_key))
                  return
  
              if request.data is not None:
                  raise SyncRequestAlreadyProcessed("%s has been processed already" % request)
  
              request.data = data
              if request.is_raw:
                  self.commit(request)
                  continue
  
              references, leaves = self.get_children(request)
  
              for depth, ref in references:
                  self.schedule(ref, request, depth, request.leaf_callback)
  
              if request.leaf_callback is not None:
                  for leaf in leaves:
                      request.leaf_callback(leaf, request)
  
              if request.dependencies == 0:
                  self.commit(request)
docs: Process request results.
  
          :param results: A list of two-tuples containing the node's key and data.