mirror of
https://github.com/jlengrand/Maestro.git
synced 2026-03-10 08:31:19 +00:00
Address PR feedback: add flush before kill, try-catch in flushDataBuffer and its test coverage
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1813,7 +1813,18 @@ export class ProcessManager extends EventEmitter {
|
||||
|
||||
// Emit accumulated data
|
||||
if (managedProcess.dataBuffer) {
|
||||
this.emit('data', sessionId, managedProcess.dataBuffer);
|
||||
try {
|
||||
this.emit('data', sessionId, managedProcess.dataBuffer);
|
||||
} catch (err) {
|
||||
logger.error(
|
||||
'[ProcessManager] Error flushing data buffer',
|
||||
'ProcessManager',
|
||||
{
|
||||
sessionId,
|
||||
error: String(err)
|
||||
}
|
||||
);
|
||||
}
|
||||
managedProcess.dataBuffer = undefined;
|
||||
}
|
||||
}
|
||||
@@ -1962,6 +1973,12 @@ export class ProcessManager extends EventEmitter {
|
||||
if (!process) return false;
|
||||
|
||||
try {
|
||||
// Clear any pending buffer timeout
|
||||
if (process.dataBufferTimeout) {
|
||||
clearTimeout(process.dataBufferTimeout);
|
||||
}
|
||||
this.flushDataBuffer(sessionId);
|
||||
|
||||
if (process.isTerminal && process.ptyProcess) {
|
||||
process.ptyProcess.kill();
|
||||
} else if (process.childProcess) {
|
||||
|
||||
Reference in New Issue
Block a user