On Sat Feb 4 17:25:00 2023 +0000, Jinoh Kang wrote:
To clarify, `group->flags & GROUP_FLAG_FREE` is set _if and only if_ the group was full at the time of the _last_ satisfied allocation request for the group, right?
Yes, although it's not strictly synchronized with the block allocation: the block allocation may complete using the last block of the group, but then when we try to set the `GROUP_FLAG_FREE` flag, we find that another thread has freed a block. In which case the flag isn't set of course.
It is also possible to think about it being equivalent to *the group is not linked anymore and the last thread to release a block to it gets ownership and is responsible of either putting the group back into a free list, or release it*.