Zbr's days.

About :: TODO :: Blog :: RSS :: Old blog :: Projects :: GIT :: Gallery :: Notes

Mon, 31 Jul 2006

Network tree allocator.


Freeing implementation uncovered a problem in the last algorithm - when system tries to free an object and searches in the AVL tree node's bitmask of free and used chunks, it is impossible to determine it's size if left neighbour (with increased size) is marked as used too. So I decided that freeing function will get a size of the object as parameter. Alternative variant is to store pointer to free objects inside some data structure (array, list or anything else), but that obviously requires additional memory and CPU overhead. Network stack always knows size of the each freed object, and actually even SLAB has special binding for cache objects and it's size, so I just decided to not introduce additional overhead right now and implement this later if there will be any need for that.

/devel/networking/nta :: Link / Comments ()