mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-02-04 20:06:41 +01:00
BBA/HLE: Sleep when no data is received
This commit is contained in:
parent
05ed1a2fae
commit
73aa8c50a2
@ -678,14 +678,17 @@ bool CEXIETHERNET::BuiltInBBAInterface::SendFrame(const u8* frame, u32 size)
|
|||||||
|
|
||||||
void CEXIETHERNET::BuiltInBBAInterface::ReadThreadHandler(CEXIETHERNET::BuiltInBBAInterface* self)
|
void CEXIETHERNET::BuiltInBBAInterface::ReadThreadHandler(CEXIETHERNET::BuiltInBBAInterface* self)
|
||||||
{
|
{
|
||||||
|
std::size_t datasize = 0;
|
||||||
while (!self->m_read_thread_shutdown.IsSet())
|
while (!self->m_read_thread_shutdown.IsSet())
|
||||||
{
|
{
|
||||||
// make thread less cpu hungry
|
if (datasize == 0)
|
||||||
|
{
|
||||||
|
// Make thread less CPU hungry
|
||||||
std::this_thread::sleep_for(std::chrono::milliseconds(1));
|
std::this_thread::sleep_for(std::chrono::milliseconds(1));
|
||||||
|
}
|
||||||
|
|
||||||
if (!self->m_read_enabled.IsSet())
|
if (!self->m_read_enabled.IsSet())
|
||||||
continue;
|
continue;
|
||||||
std::size_t datasize = 0;
|
|
||||||
|
|
||||||
u8 wp = self->m_eth_ref->page_ptr(BBA_RWP);
|
u8 wp = self->m_eth_ref->page_ptr(BBA_RWP);
|
||||||
const u8 rp = self->m_eth_ref->page_ptr(BBA_RRP);
|
const u8 rp = self->m_eth_ref->page_ptr(BBA_RRP);
|
||||||
@ -711,6 +714,10 @@ void CEXIETHERNET::BuiltInBBAInterface::ReadThreadHandler(CEXIETHERNET::BuiltInB
|
|||||||
self->m_queue_read++;
|
self->m_queue_read++;
|
||||||
self->m_queue_read &= 15;
|
self->m_queue_read &= 15;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
datasize = 0;
|
||||||
|
}
|
||||||
|
|
||||||
// Check network stack references
|
// Check network stack references
|
||||||
self->PollData(&datasize);
|
self->PollData(&datasize);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user