mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-10-10 17:16:36 +00:00
experiment(vegas): vegas_scroll.switch_interval_ms shortens the GIL switch interval during a run
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
"""vegas_scroll.switch_interval_ms: applied for a Vegas run, restored after."""
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
|
||||
|
||||
from src.vegas_mode.config import VegasModeConfig # noqa: E402
|
||||
from src.vegas_mode.coordinator import VegasModeCoordinator # noqa: E402
|
||||
|
||||
|
||||
def _coordinator(ms):
|
||||
c = VegasModeCoordinator.__new__(VegasModeCoordinator)
|
||||
c.vegas_config = VegasModeConfig(switch_interval_ms=ms)
|
||||
return c
|
||||
|
||||
|
||||
def test_applied_for_the_run_and_restored_after():
|
||||
before = sys.getswitchinterval()
|
||||
c = _coordinator(1.0)
|
||||
try:
|
||||
c._apply_switch_interval()
|
||||
assert abs(sys.getswitchinterval() - 0.001) < 1e-9
|
||||
c._apply_switch_interval() # a second start must not lose the original
|
||||
finally:
|
||||
c._restore_switch_interval()
|
||||
assert sys.getswitchinterval() == before
|
||||
|
||||
|
||||
def test_zero_leaves_the_interpreter_alone():
|
||||
before = sys.getswitchinterval()
|
||||
c = _coordinator(0.0)
|
||||
c._apply_switch_interval()
|
||||
c._restore_switch_interval()
|
||||
assert sys.getswitchinterval() == before
|
||||
|
||||
|
||||
def test_read_from_config():
|
||||
config = VegasModeConfig.from_config(
|
||||
{"display": {"vegas_scroll": {"switch_interval_ms": 1}}})
|
||||
assert config.switch_interval_ms == 1.0
|
||||
assert VegasModeConfig.from_config({"display": {"vegas_scroll": {}}}).switch_interval_ms == 0.0
|
||||
Reference in New Issue
Block a user