Hacker News new | ask | show | jobs
by Todd 4189 days ago
This approach is more common in lower level software where each allocation is carefully managed. The Linux kernel uses them, for example:

http://www.makelinux.net/ldd3/chp-11-sect-5

as does the Windows kernel:

http://msdn.microsoft.com/en-us/library/windows/hardware/ff5...

1 comments

And BSD / OS X. Check out queue(3).
And on AmigaOS, pretty much everything in Exec (the OS kernel) was held together by doubly-linked-lists (of the intrusive kind). Coming from C I'd say that std::list is the 'strange kind' of lists, and intrusive lists are the 'common kind'. On the other hand I haven't been using lists for years, since growable arrays (like std::vector) are almost always faster.