30 static_assert(SIZE < 255,
"EventPool SIZE must be at most 254");
43 while ((event = this->free_list_.
pop()) !=
nullptr) {
55 T *
event = this->free_list_.
pop();
59 return this->create_();
64 if (event !=
nullptr) {
67 this->free_list_.
push(event);
80 while (this->total_created_ < SIZE) {
81 T *
event = this->create_();
84 this->free_list_.
push(event);
93 if (this->total_created_ >= SIZE) {
99 T *
event = allocator.allocate(1);
100 if (event ==
nullptr) {
106 this->total_created_++;
113 LockFreeQueue<T, static_cast<uint8_t>(SIZE + 1)> free_list_;
114 uint8_t total_created_;