mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-10-04 06:15:09 +00:00
- DisplayManager.defer_update()/process_deferred_updates(): one lock around every queue mutation (appends from the update thread were lost to the render thread's filter/slice reassignments); callables run outside it. - FontManager and element_style no longer cache BDF freetype.Face objects process-wide (load_bdf_face caches them per thread); element_style's LRU is locked against get/move_to_end vs eviction races. - limit_refresh_rate_hz default is one constant, DEFAULT_REFRESH_LIMIT_HZ = 100 (the template's), for the library options, refresh_hz, the matrix guard, Vegas and scroll_config. Previously a missing key capped the panel at 90 while pacing assumed 100. - Sync follower: the TCP thread queues the leader's scroll image; the render thread swaps image/array/width in between frames. - update_display() error log rate-limited (traceback first, then once a minute with a count); swallowed DisplayController exceptions log at DEBUG. - Root display_controller.py runs run.py via runpy. - stream_manager: correct the RLock release comments; merge duplicate if. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
21 lines
773 B
Python
21 lines
773 B
Python
#!/usr/bin/env python3
|
|
"""Legacy entry point: runs ``run.py``, which is the one to use.
|
|
|
|
``python3 run.py`` (``-e`` for the emulator, ``-d`` for debug logging) is how
|
|
the display service and the docs start LEDMatrix. This file used to import
|
|
``src.display_controller.main`` directly, which skipped what run.py sets up
|
|
first -- ``sys.dont_write_bytecode`` (root-owned ``__pycache__`` in plugin
|
|
directories blocks the web service from updating them), the ``-e``/``-d``
|
|
flags, and the logging configuration. It now runs run.py exactly as
|
|
``python3 run.py`` would, with the same arguments.
|
|
"""
|
|
|
|
import os
|
|
import runpy
|
|
|
|
if __name__ == "__main__":
|
|
runpy.run_path(
|
|
os.path.join(os.path.dirname(os.path.abspath(__file__)), "run.py"),
|
|
run_name="__main__",
|
|
)
|