ladybird/AK
Robin Burchell 53262cd08b AK: Introduce IntrusiveList
And use it in the scheduler.

IntrusiveList is similar to InlineLinkedList, except that rather than
making assertions about the type (and requiring inheritance), it
provides an IntrusiveListNode type that can be used to put an instance
into many different lists at once.

As a proof of concept, port the scheduler over to use it. The only
downside here is that the "list" global needs to know the position of
the IntrusiveListNode member, so we have to position things a little
awkwardly to make that happen. We also move the runnable lists to
Thread, to avoid having to publicize the node.
2019-07-19 15:42:30 +02:00
..
ELF ELFImage: Sprinkle some constification love 2019-07-18 13:22:51 +02:00
Tests AK: Add a new TestSuite.h from my own work, adapted to match the existing one a bit 2019-07-16 11:03:38 +02:00
AKString.h AK: Support case-insensitive HashMap<String, T>. 2019-07-13 11:00:29 +02:00
Assertions.h AK: Make ASSERT_NOT_REACHED() work nicely in host builds. 2019-06-18 08:52:21 +02:00
Badge.h AK: Delete the Badge copy and move constructors. 2019-06-11 23:47:51 -07:00
Bitmap.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
BufferStream.h BufferStream: Add a function to fully reset state 2019-07-16 09:36:38 +02:00
ByteBuffer.h AK: Remove use of copy_ref(). 2019-07-11 15:45:11 +02:00
CircularQueue.h Add clang-format file 2019-05-28 17:31:20 +02:00
DoublyLinkedList.h AK: Defer to Traits<T> for equality comparison in container templates. 2019-06-29 19:14:03 +02:00
FileSystemPath.cpp AK: Add a canonicalized_path() convenience function. 2019-07-15 06:50:32 +02:00
FileSystemPath.h AK: Add a canonicalized_path() convenience function. 2019-07-15 06:50:32 +02:00
Function.h Add clang-format file 2019-05-28 17:31:20 +02:00
HashFunctions.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
HashMap.h AK: Support case-insensitive HashMap<String, T>. 2019-07-13 11:00:29 +02:00
HashTable.h AK: Allow HashMap to be used with non-default-constructible values. 2019-06-29 21:09:40 +02:00
InlineLinkedList.h Add clang-format file 2019-05-28 17:31:20 +02:00
InlineLRUCache.h AK: InlineLRUCache was always filling up one short of capacity. 2019-05-14 15:33:21 +02:00
install.sh Build: Install most headers to Root (and libcore.a/libgui.a) 2019-05-17 21:59:48 +02:00
IntrusiveList.h AK: Introduce IntrusiveList 2019-07-19 15:42:30 +02:00
IPv4Address.h AK: Add LogStream operator<< for IPv4Address. 2019-07-08 11:43:42 +02:00
IterationDecision.h AK: Add IterationDecision.h. 2019-06-07 17:14:16 +02:00
JsonArray.cpp AK: Rename JsonObject::to_string() and pals to serialized(). 2019-06-18 09:37:47 +02:00
JsonArray.h JsonArray: Add for_each() helper. 2019-06-24 12:02:31 +02:00
JsonObject.cpp AK: Rename JsonObject::to_string() and pals to serialized(). 2019-06-18 09:37:47 +02:00
JsonObject.h AK: Add JsonObject::set(key, &&value) overload. 2019-07-08 13:08:21 +02:00
JsonParser.cpp AK: Add JsonObject::set(key, &&value) overload. 2019-07-08 13:08:21 +02:00
JsonParser.h AK: Let's put the JSON parsing in a separate class. 2019-06-24 13:39:45 +02:00
JsonValue.cpp AK: Make it easy to convert between JsonValue and IPv4Address. 2019-07-08 13:03:55 +02:00
JsonValue.h JsonValue: Add to_uint(), to_int() and as_double(). 2019-07-18 08:18:39 +02:00
kmalloc.h Add clang-format file 2019-05-28 17:31:20 +02:00
kstdio.h LibHTML: Make it possible to build LibHTML on the host. 2019-06-22 21:21:57 +02:00
LogStream.cpp LogStream: Add a simple-ish mechanism for colorizing and styling output. 2019-07-15 20:22:30 +02:00
LogStream.h LogStream: Add a simple-ish mechanism for colorizing and styling output. 2019-07-15 20:22:30 +02:00
MappedFile.cpp Kernel: Have the open() syscall take an explicit path length parameter. 2019-07-08 20:01:49 +02:00
MappedFile.h AK: Make MappedFile non-copyable. 2019-07-11 15:14:30 +02:00
NetworkOrdered.h AK: Use __builtin_bswap() in NetworkOrdered. 2019-06-26 20:01:48 +02:00
Noncopyable.h Add clang-format file 2019-05-28 17:31:20 +02:00
NonnullRefPtr.h AK: Delete bad pointer assignment operators and constructors. 2019-07-11 16:50:30 +02:00
NonnullRefPtrVector.h AK: Get rid of ConstVectorIterator. 2019-06-27 14:52:12 +02:00
Optional.h AK: Add a simple Optional<T> template. 2019-07-08 11:29:38 +02:00
OwnPtr.h AK: Delete bad pointer assignment operators and constructors. 2019-07-11 16:50:30 +02:00
Platform.h AK: Add Platform.h with an ARCH() macro. 2019-07-09 15:48:04 +02:00
PrintfImplementation.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
Queue.h AK: Add Queue::enqueue(const T&). 2019-07-13 17:00:30 +02:00
QuickSort.h LibGUI: Run clang-format on everything. 2019-06-07 11:46:02 +02:00
RefCounted.h AK: Rename Retainable.h => RefCounted.h. 2019-06-21 18:58:45 +02:00
RefPtr.h AK: Delete bad pointer assignment operators and constructors. 2019-07-11 16:50:30 +02:00
ScopeGuard.h AK: ScopeGuard.h needs StdLibExtras.h 2019-06-18 09:31:14 +02:00
SinglyLinkedList.h AK: Add some missing includes in SinglyLinkedList. 2019-07-08 14:06:22 +02:00
StdLibExtras.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
StdLibExtras.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
String.cpp StringView: Rename characters() to characters_without_null_termination(). 2019-07-08 15:38:44 +02:00
StringBuilder.cpp StringBuilder: Reset the internal builder length after building. 2019-07-08 15:57:25 +02:00
StringBuilder.h AK: Massage it into building on my host system without breaking Serenity. 2019-06-14 06:43:56 +02:00
StringImpl.cpp StringImpl: Fix possible uninitialized access in StringImpl::create(). 2019-06-24 14:38:44 +02:00
StringImpl.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
StringView.cpp StringView: Rename characters() to characters_without_null_termination(). 2019-07-08 15:38:44 +02:00
StringView.h StringView: Rename characters() to characters_without_null_termination(). 2019-07-08 15:38:44 +02:00
TemporaryChange.h Add clang-format file 2019-05-28 17:31:20 +02:00
TestSuite.h AK: Add a new TestSuite.h from my own work, adapted to match the existing one a bit 2019-07-16 11:03:38 +02:00
Time.h AK: Make timeval_add() and timeval_sub() take references. 2019-06-06 18:02:28 +02:00
Traits.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
Types.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
ValueRestorer.h LibC: Implement popen() and pclose(). 2019-06-03 21:17:58 +02:00
Vector.h AK: Use operator== for comparison in Vector::contains_slow 2019-07-11 14:17:37 +02:00
Weakable.h AK: Rename Retainable.h => RefCounted.h. 2019-06-21 18:58:45 +02:00
WeakPtr.h AK: Remove use of copy_ref(). 2019-07-11 15:45:11 +02:00