Skip to content

Commit e0d8be6

Browse files
committed
fix(wakelock): guard WakeLock with strict RAII state tracking in index.js
1 parent f9a5e01 commit e0d8be6

1 file changed

Lines changed: 16 additions & 7 deletions

File tree

index.js

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1026,10 +1026,15 @@ async function generate(options) {
10261026
}
10271027
}
10281028

1029-
// Acquire WakeLock
1029+
let wakeLockAcquired = false;
10301030
if (isAndroidTermux()) {
1031-
try { spawnSync('termux-wake-lock', [], { timeout: 2000 }); } catch (e) {
1032-
console.warn('[termux-diffusion] WakeLock acquire note:', e.message);
1031+
try {
1032+
spawnSync('termux-wake-lock', [], { timeout: 1000 });
1033+
wakeLockAcquired = true;
1034+
} catch (e) {
1035+
if (process.env.DEBUG) {
1036+
console.debug('[termux-diffusion] WakeLock acquire note:', e.message);
1037+
}
10331038
}
10341039
}
10351040

@@ -1132,10 +1137,14 @@ async function generate(options) {
11321137
});
11331138
});
11341139
} finally {
1135-
// Release WakeLock
1136-
if (isAndroidTermux()) {
1137-
try { spawnSync('termux-wake-unlock', [], { timeout: 2000 }); } catch (e) {
1138-
console.warn('[termux-diffusion] WakeLock release note:', e.message);
1140+
// Release WakeLock safely
1141+
if (wakeLockAcquired && isAndroidTermux()) {
1142+
try {
1143+
spawnSync('termux-wake-unlock', [], { timeout: 1000 });
1144+
} catch (e) {
1145+
if (process.env.DEBUG) {
1146+
console.debug('[termux-diffusion] WakeLock release note:', e.message);
1147+
}
11391148
}
11401149
}
11411150
}

0 commit comments

Comments
 (0)