Kernel: Make sure IPv4 and ARP packets are not missed
This is a really hacky solution but will do until i get atomic unblocking with respect to locks
This commit is contained in:
parent
0f189d410e
commit
8812704601
|
@ -162,7 +162,7 @@ namespace Kernel
|
||||||
while (m_pending_packets.empty())
|
while (m_pending_packets.empty())
|
||||||
{
|
{
|
||||||
m_pending_lock.unlock(state);
|
m_pending_lock.unlock(state);
|
||||||
m_pending_thread_blocker.block_indefinite();
|
m_pending_thread_blocker.block_with_timeout_ms(100);
|
||||||
state = m_pending_lock.lock();
|
state = m_pending_lock.lock();
|
||||||
}
|
}
|
||||||
auto packet = m_pending_packets.front();
|
auto packet = m_pending_packets.front();
|
||||||
|
|
|
@ -335,7 +335,7 @@ namespace Kernel
|
||||||
while (m_pending_packets.empty())
|
while (m_pending_packets.empty())
|
||||||
{
|
{
|
||||||
m_pending_lock.unlock(state);
|
m_pending_lock.unlock(state);
|
||||||
m_pending_thread_blocker.block_indefinite();
|
m_pending_thread_blocker.block_with_timeout_ms(100);
|
||||||
state = m_pending_lock.lock();
|
state = m_pending_lock.lock();
|
||||||
}
|
}
|
||||||
auto packet = m_pending_packets.front();
|
auto packet = m_pending_packets.front();
|
||||||
|
|
Loading…
Reference in New Issue