Skip to content

reliability: guard BlueZ base async lifecycles - #3307

Open
geraldo-netto wants to merge 3 commits into
blueman-project:mainfrom
geraldo-netto:fix/bluez-base-concurrency-guards
Open

reliability: guard BlueZ base async lifecycles#3307
geraldo-netto wants to merge 3 commits into
blueman-project:mainfrom
geraldo-netto:fix/bluez-base-concurrency-guards

Conversation

@geraldo-netto

Copy link
Copy Markdown
Contributor

Summary

  • Add cancellable support to async BlueZ property Set calls in Base.set().
  • Track pending property-set cancellables and cancel them when the BlueZ proxy wrapper is destroyed.
  • Replace permanent BaseMeta instance caches with per-subclass weak-value caches.
  • Remove destroyed instances from the class cache explicitly.
  • Add focused tests for cancellable propagation, cancel-on-destroy, weak cache release, per-subclass cache isolation, and destroy cache removal.

Tests

  • /usr/bin/python3 -m py_compile blueman/bluez/Base.py test/bluez/test_base.py
  • /usr/bin/python3 -m unittest test.bluez.test_base
  • ruff check blueman/bluez/Base.py test/bluez/test_base.py
  • /usr/bin/python3 -m flake8 --select=E,F,W,C90 --ignore=E402,F403,F405,W504 --max-line-length=120 blueman/bluez/Base.py test/bluez/test_base.py
  • PYTHONPATH=stubs pyright --pythonpath /usr/bin/python3 blueman/bluez/Base.py test/bluez/test_base.py

@sonarqubecloud

Copy link
Copy Markdown

@geraldo-netto geraldo-netto changed the title fix: guard BlueZ base async lifecycles reliability: guard BlueZ base async lifecycles Jun 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant