Repository navigation
Conversation
nazbert
added a commit
to nazbert/Deckard
that referenced
this pull request
Jul 12, 2026
…treamController#16, StreamController#127) - Page.set_media_fps live-applied to matching inputs on ALL controllers: editing one page's FPS row rebased the playing video timeline on another deck showing a different page (self-corrects only on that deck's next page load). Now filtered by active page, the same filter update_input uses (issue StreamController#14). - mark_page_ready_to_clear dereferenced active_page at call time; both bracketing callers (the tick loop and the key handler) re-derefed it for the True-call, so a page switch during a slow on_tick left the OLD page pinned ready_to_clear=False forever -- unevictable, silently shrinking the eviction budget. The False-call now returns the page it marked and the True-calls pass it back (issue StreamController#16). - Page.initialize_actions' bare check-then-set on on_ready_called let two concurrent load_page(samePage) calls both claim the same action and submit a second concurrent on_ready (duplicate backend processes -- the class StreamController#34 closed for the on_update path). The claim is now atomic under a per-page lock; the loads and pool submit stay outside it (issue StreamController#127). tests/scenario_small_guards.py red-checks all three: the FPS bleed, the pinned page, and (via a capture-before-rendezvous barrier property making the interleave deterministic) the double claim.
nazbert
added a commit
to nazbert/Deckard
that referenced
this pull request
Jul 12, 2026
…overage Review round 1 follow-ups to !41 (StreamController#14/StreamController#16/StreamController#127), test-only: - StreamController#16 end-to-end: check_ready_to_clear_evicts_end_to_end drives the mid-work tick bracket, then runs the REAL clear_old_cached_pages and asserts the page is actually EVICTED -- the previous check only asserted the flag value, not that the fix restores evictability (the point of the bug). Red-tested: pre-fix the page stays pinned ready_to_clear=False and survives eviction. - StreamController#16 key-handler: check_ready_to_clear_key_handler drives the real ControllerKey.event_callback (3706/3737) with a press-triggered page change injected at self.update() -- lands the switch mid-bracket. Asserts the OLD (pressed) page is reset, not the switched-to page. Previously only the tick-loop shape was covered. Red-tested. - StreamController#127 reload path: check_atomic_ready_claim_reload_path asserts the per-page claim lock also covers the Page.py:214 reload entry point (the fix is broader than the issue named; it was unasserted). Red-tested: pre-fix, two concurrent claims via the reload trigger. - StreamController#127 NIT: the claim probe's getter now takes a positive fast path (second reader reads True -> returns at once, no barrier) and the fix-present lock-holder wait drops from a 2.0s to a 0.5s timeout. Six checks now run in ~1.5s wall-clock (was ~2.4s for three). Harness: 89/89 PASS.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add hyprctl command cwd to /