forked from Bananymous/banan-os
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:
@@ -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();
|
||||||
|
|||||||
Reference in New Issue
Block a user