[Notes] [Git][BuildStream/buildstream][bschubert/rework-sort] fixup! fixup! fixup! Add reverse dependencies in the LoadElement



Title: GitLab

Benjamin Schubert pushed to branch bschubert/rework-sort at BuildStream / buildstream

Commits:

2 changed files:

Changes:

  • buildstream/_loader/loadelement.py
    ... ... @@ -65,7 +65,6 @@ class LoadElement():
    65 65
             self.full_name = None  # The element full name (with associated junction)
    
    66 66
             self.visited = False
    
    67 67
             self.tried_visit = False
    
    68
    -        self.in_pipeline = False
    
    69 68
             self.__on_visit = []
    
    70 69
             #
    
    71 70
             # Private members
    

  • buildstream/_loader/loader.py
    ... ... @@ -427,13 +427,6 @@ class Loader():
    427 427
     
    
    428 428
             while elements_to_load:
    
    429 429
                 element = elements_to_load.popleft()
    
    430
    -
    
    431
    -            if any(filter(not_visited, element.reverse_dependencies)):
    
    432
    -                # We will want to treat this item as soon as possible.
    
    433
    -                # Mark it as already seen
    
    434
    -                element.tried_visit = True
    
    435
    -                continue
    
    436
    -
    
    437 430
                 element.visited = True
    
    438 431
                 meta_element = element._loader._collect_element(element)
    
    439 432
                 element.visit(meta_element)
    
    ... ... @@ -444,13 +437,18 @@ class Loader():
    444 437
                     if dep.dep_type != Symbol.BUILD:
    
    445 438
                         dep.element.on_visit(meta_element.dependencies.append)
    
    446 439
     
    
    447
    -                if not element.in_pipeline:
    
    448
    -                    if dep.element.tried_visit:
    
    449
    -                        # This element has already been requested, we should treat
    
    450
    -                        # it as soon as possible
    
    451
    -                        elements_to_load.appendleft(dep.element)
    
    452
    -                    else:
    
    453
    -                        elements_to_load.append(dep.element)
    
    440
    +                if any(filter(not_visited, element.reverse_dependencies)):
    
    441
    +                    # We will want to treat this item as soon as possible.
    
    442
    +                    # Mark it as already seen
    
    443
    +                    element.tried_visit = True
    
    444
    +                    continue
    
    445
    +
    
    446
    +                if dep.element.tried_visit:
    
    447
    +                    # This element has already been requested, we should treat
    
    448
    +                    # it as soon as possible
    
    449
    +                    elements_to_load.appendleft(dep.element)
    
    450
    +                else:
    
    451
    +                    elements_to_load.append(dep.element)
    
    454 452
     
    
    455 453
             for element in self._meta_elements.values():
    
    456 454
                 element.build_dependencies.sort(key=attrgetter("index"), reverse=True)
    



  • [Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]