From 88127046010895ebf8522ce8f87aa101aefe3523 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Thu, 5 Jun 2025 22:03:15 +0300 Subject: [PATCH] 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 --- kernel/kernel/Networking/ARPTable.cpp | 2 +- kernel/kernel/Networking/IPv4Layer.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/kernel/Networking/ARPTable.cpp b/kernel/kernel/Networking/ARPTable.cpp index 1bb85e7e..901108bf 100644 --- a/kernel/kernel/Networking/ARPTable.cpp +++ b/kernel/kernel/Networking/ARPTable.cpp @@ -162,7 +162,7 @@ namespace Kernel while (m_pending_packets.empty()) { 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(); } auto packet = m_pending_packets.front(); diff --git a/kernel/kernel/Networking/IPv4Layer.cpp b/kernel/kernel/Networking/IPv4Layer.cpp index 9553cb90..a347e51c 100644 --- a/kernel/kernel/Networking/IPv4Layer.cpp +++ b/kernel/kernel/Networking/IPv4Layer.cpp @@ -335,7 +335,7 @@ namespace Kernel while (m_pending_packets.empty()) { 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(); } auto packet = m_pending_packets.front();