fix: clear setTimeout on successful recording stop to prevent process hang
This commit is contained in:
@@ -1303,10 +1303,15 @@ export async function startPlayWriterCDPRelayServer({
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Set up promise to wait for final chunk
|
// Set up promise to wait for final chunk
|
||||||
|
let timeoutId: ReturnType<typeof setTimeout>
|
||||||
const finalPromise = new Promise<StopRecordingResult>((resolve) => {
|
const finalPromise = new Promise<StopRecordingResult>((resolve) => {
|
||||||
recording.resolveStop = resolve
|
const wrappedResolve = (result: StopRecordingResult) => {
|
||||||
|
clearTimeout(timeoutId)
|
||||||
|
resolve(result)
|
||||||
|
}
|
||||||
|
recording.resolveStop = wrappedResolve
|
||||||
// Timeout after 30 seconds
|
// Timeout after 30 seconds
|
||||||
setTimeout(() => {
|
timeoutId = setTimeout(() => {
|
||||||
if (recording.resolveStop) {
|
if (recording.resolveStop) {
|
||||||
recording.resolveStop = undefined
|
recording.resolveStop = undefined
|
||||||
resolve({ success: false, error: 'Timeout waiting for recording data' })
|
resolve({ success: false, error: 'Timeout waiting for recording data' })
|
||||||
|
|||||||
Reference in New Issue
Block a user