The pool allocator would only allocate one item and then stop, its allocation wasn't reset correctly because of a comparison operator being the wrong way around.