Skip to content

Add hyprctl command cwd to / - #14

Merged
Core447 merged 1 commit into
mainfrom
dev
Mar 30, 2024
Merged

Core447 merged 1 commit into
mainfrom
dev

Conversation

@Core447

@Core447 Core447 commented Mar 30, 2024

Copy link
Copy Markdown
Member

Add hyprctl command cwd to /

@Core447
Core447 merged commit 10f2040 into main Mar 30, 2024
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.
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