Commit graph

7 commits

Author SHA1 Message Date
Andreas Kling
239c0bd6a6 Kernel: Make block() and yield() automatically call Scheduler::yield().
This exposed some places we were accidentally doing a double yield().
2019-03-24 01:52:10 +01:00
Andreas Kling
60d25f0f4a Kernel: Introduce threads, and refactor everything in support of it.
The scheduler now operates on threads, rather than on processes.
Each process has a main thread, and can have any number of additional
threads. The process exits when the main thread exits.

This patch doesn't actually spawn any additional threads, it merely
does all the plumbing needed to make it possible. :^)
2019-03-23 22:03:17 +01:00
Andreas Kling
c24d4b07db IPv4: Add simple pseudorandom ephemeral port allocators for TCP and UDP. 2019-03-18 04:03:44 +01:00
Andreas Kling
5dfdcf796d TCP: Correct checksum for packets with odd number of bytes. 2019-03-14 19:57:54 +01:00
Andreas Kling
25e521f510 TCP: Start working on auto-closing connections when we get FIN. 2019-03-14 15:23:32 +01:00
Andreas Kling
274b500bac IPv4: Move more stuff from IPv4Socket to TCPSocket. 2019-03-14 12:28:30 +01:00
Andreas Kling
d2176eddfc Kernel: Factor out TCP parts of IPv4Socket into a TCPSocket class. 2019-03-14 12:20:38 +01:00