Add delay in uart_handle_read() to prevent tight polling loop and memory leaks

Added Sleep(1) to uart_handle_read when no data is available to simulate
hardware I/O latency. This prevents the hook from entering a tight polling
loop, which was causing high CPU usage and massive memory leaks.
This commit is contained in:
Gl0w1amp
2025-11-29 05:32:56 +00:00
parent 252465b23f
commit 34a2716827
+3
View File
@@ -200,6 +200,9 @@ static HRESULT uart_handle_read(struct uart *uart, struct irp *irp)
int requested = irp->read.nbytes;
if (uart->readable.pos < requested && uart->readable.pos == 0) {
/* Avoid a tight polling loop which causes performance issues
and massive memory leaks. Simulate hardware I/O latency. */
Sleep(1);
return E_PENDING;
}