| 217 | bool empty() const { return bitmap.empty(); } |
| 218 | |
| 219 | void applyOr(Container && addition) noexcept |
| 220 | { |
| 221 | std::lock_guard lock(mutex); |
| 222 | |
| 223 | if (bitmap.empty()) |
| 224 | { |
| 225 | bitmap.swap(addition); |
| 226 | return; |
| 227 | } |
| 228 | |
| 229 | /// TODO: simd bit or (need padding and tail in container) |
| 230 | for (size_t i = 0; i < bitmap.size(); ++i) |
| 231 | if (addition[i]) |
| 232 | bitmap[i] = true; |
| 233 | } |
| 234 | }; |
| 235 | |
| 236 | using Container = Bitmap::Container; |