> Once again, these allocators work fine in multithreaded environments
How? As I understand, for such double-headed allocator to be multithreaded one needs to update two counters atomically, which is tricky.