29 static_assert(SIZE < 255,
"EventPool SIZE must be at most 254");
42 while ((event = this->free_list_.
pop()) !=
nullptr) {
54 T *
event = this->free_list_.
pop();
58 return this->create_();
63 if (event !=
nullptr) {
66 this->free_list_.
push(event);
79 while (this->total_created_ < SIZE) {
80 T *
event = this->create_();
83 this->free_list_.
push(event);
92 if (this->total_created_ >= SIZE) {
98 T *
event = allocator.allocate(1);
99 if (event ==
nullptr) {
105 this->total_created_++;
112 LockFreeQueue<T, static_cast<uint8_t>(SIZE + 1)> free_list_;
113 uint8_t total_created_;