summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSolstice <solstice@local>2026-06-09 01:14:04 -0700
committerSolstice <solstice@local>2026-06-09 01:14:04 -0700
commitfc7cc972e6171896ef4e648f50951902a5b478fb (patch)
tree3bd5a059e10ff2aa6926625c03b8b67d29d53d25 /src
parent887c0bc6f968f80ac90220f24bb578438e05708a (diff)
fix: resolve final deadlock and startup sync gap
Diffstat (limited to 'src')
-rw-r--r--src/hooks/useTimerEvents.ts16
1 files changed, 6 insertions, 10 deletions
diff --git a/src/hooks/useTimerEvents.ts b/src/hooks/useTimerEvents.ts
index a0d5154..2142273 100644
--- a/src/hooks/useTimerEvents.ts
+++ b/src/hooks/useTimerEvents.ts
@@ -29,16 +29,6 @@ export function useTimerEvents(
let unlisteners: Array<() => void> = [];
async function setup() {
- // Bootstrap initial state from backend
- try {
- await syncFromBackend();
- if (cancelled) return;
- } catch (e) {
- console.error('Failed to get timer status:', e);
- }
-
- if (cancelled) return;
-
// Register all listeners atomically
try {
const [unlistenTick, unlistenCompleted, unlistenPhaseChanged] = await Promise.all([
@@ -75,6 +65,12 @@ export function useTimerEvents(
}
unlisteners = [unlistenTick, unlistenCompleted, unlistenPhaseChanged];
+
+ try {
+ await syncFromBackend();
+ } catch (e) {
+ console.error('Failed to get timer status:', e);
+ }
} catch (e) {
console.error('Failed to register timer listeners:', e);
}