There are a number of queue options provided by queue.h
.
Since this is all done by the pre-processor, and, also note that the full path of the file is src/sys/sys/queue.h
on every BSD system, meaning that it's heavily used within the kernel for internal structures, each variant is highly optimised for efficiency and lowest memory footprint.
On OpenBSD, it appears that there are a couple of choices for queues to choose from (each BSD system may have a slightly different selection here):
* For whichever reason, it appears that presently only 4 out of the 6 choices are officially documented in the manual page.
See: http://bxr.su/o/share/man/man3/queue.3
If you want to be able to INSERT_TAIL
into the queue/list, you still do have a lot of options to choose from here -- SIMPLEQ
, XSIMPLEQ
, TAILQ
and CIRCLEQ
.
So, in summary: there's no law that says that a queue/list implementation by the name LIST
has to allow tail insertion!