perf(terminal): keep uncontended paste delivery synchronous

This commit is contained in:
OrcaWin
2026-07-30 21:40:53 -07:00
parent 27a0f710b1
commit 8c1946e2da
2 changed files with 14 additions and 2 deletions
@@ -32,6 +32,16 @@ function chunkedWindowsPaste() {
}
describe('terminal paste operation ordering', () => {
it('starts an uncontended paste operation synchronously', async () => {
let started = false
const operation = runTerminalPtyInputTransaction('pty-1', async () => {
started = true
})
expect(started).toBe(true)
await operation
})
it('keeps startup context outside an active chunked user paste frame', async () => {
const writes: string[] = []
let startupDraft: Promise<boolean> | null = null
@@ -8,14 +8,16 @@ export async function runTerminalPtyInputTransaction<T>(
return await operation()
}
const previous = transactionTails.get(ptyId) ?? Promise.resolve()
const previous = transactionTails.get(ptyId)
let release!: () => void
const current = new Promise<void>((resolve) => {
release = resolve
})
transactionTails.set(ptyId, current)
await previous
if (previous) {
await previous
}
try {
return await operation()
} finally {