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

fix(dispatcher): mark tasks as done after taking elements off queue #1305

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Commits on Jul 16, 2023

  1. fix(dispatcher): mark tasks as done after taking elements off updates…

    …_queue
    
    This commit fixes an issue where the `updates_queue.join()` method would never return.
    When waiting for the `updates_queue` to get emptied, the asyncio queue implementation relies on an internal counter. This counter is incremented on each `put()` but is not automatically decremented on each `get()`.
    In order to decrement the counter we need to use `updates_queue.task_done()`, as per the [docs](https://docs.python.org/3/library/asyncio-queue.html#asyncio.Queue.task_done). Since this wasn't done in pyrogram yet, there was no proper way to use the `join()` method on the updates_queue and hence wait until all updates got processed.
    
    A workaround would be to use a while loop and check if `updates_queue.empty()` returns true. But using `join()` is just a lot cleaner and does not require a loop on our end.
    d-Rickyy-b committed Jul 16, 2023
    Configuration menu
    Copy the full SHA
    0e57701 View commit details
    Browse the repository at this point in the history