mirror of
https://gitea.tendokyu.moe/TeamTofuShop/capnhook.git
synced 2026-10-12 01:08:20 +03:00
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:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user