def METHOD_NAME():
    # Create a single instance of the installer (by default single instance installer's install methods are mutex)
    installer = LockingTestPackageInstaller()
    # Set that the installer should wait for event 1 and start
    event_installer_1 = Event()
    installer.set_event(event_installer_1, "installer1")
    # Run the installer in a new thread
    FuncThread(func=installer.install).start()
    # Wait for installer 1 to wait for the event
    installer.about_to_wait.wait()
    # Create a new event and set it as the new event to wait for
    event_installer_2 = Event()
    installer.set_event(event_installer_2, "installer2")
    # Again, run the installer in a new thread
    FuncThread(func=installer.install).start()
    # Release the second installer (by setting the event)
    event_installer_2.set()
    # Afterwards release the first installer
    event_installer_1.set()
    # Since the first installer should have the lock when being first run, ensure it finishes first
    assert installer.queue.get() == "installer1"