mirror of
https://github.com/stablyai/orca.git
synced 2026-10-19 16:03:26 +00:00
perf(terminal): keep uncontended paste delivery synchronous
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user