Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Zillion: Finalize item locations in either generate_output or fill_slot_data #4121

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Commits on Oct 29, 2024

  1. Zillion: Remove generate_output and fill_slot_data thread synchroniza…

    …tion
    
    `finalize_item_locations()` does not mutate `self` or any attribute of
    `self`, so fill_slot_data does not need to wait for
    `finalize_item_locations()` to be run.
    
    Previously, before 113c54f, synchronization was necessary because
    `finalize_item_locations()` would set location data into
    `self.zz_system.patcher`, which `fill_slot_data` would then read from.
    
    This also means that Zillion can be re-enabled for the
    test.general.test_implemented.test_slot_data test.
    Mysteryem committed Oct 29, 2024
    Configuration menu
    Copy the full SHA
    e18906b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    73f30de View commit details
    Browse the repository at this point in the history

Commits on Oct 30, 2024

  1. Configuration menu
    Copy the full SHA
    d4afc78 View commit details
    Browse the repository at this point in the history
  2. Revert "Zillion: Remove generate_output and fill_slot_data thread syn…

    …chronization"
    
    This reverts commit e18906b.
    Mysteryem committed Oct 30, 2024
    Configuration menu
    Copy the full SHA
    631a3e2 View commit details
    Browse the repository at this point in the history
  3. Zillion: Finalize item locations in either generate_output or fill_sl…

    …ot_data
    
    `generate_output` and `fill_slot_data` are run in separate threads so
    there is no guarantee that one runs before the other.
    
    Before this patch, the threads were synchronized by making
    `fill_slot_data` wait for `generate_output`. The problem with doing this
    is that the test.general.test_implemented.test_slot_data test does not
    run `generate_output`, so Zillion had to be disabled from the test.
    
    This patch changes the synchronization of the threads such that it does
    not matter which function is run first. Whichever function is run first
    will run `finalize_item_locations()` and the other function will wait
    until `finalize_item_locations()` is complete and has been cached in a
    new instance attribute.
    
    Zillion has now been re-enabled for the
    test.general.test_implemented.test_slot_data test.
    Mysteryem committed Oct 30, 2024
    Configuration menu
    Copy the full SHA
    5bc738d View commit details
    Browse the repository at this point in the history