| 230 | }; |
| 231 | |
| 232 | [[nodiscard]] inline WriteEngineLocks lockWriteEngines(DataEngine& live, DataEngine* staging) { |
| 233 | if (staging == nullptr) { |
| 234 | return {live.lockEngine(), {}}; |
| 235 | } |
| 236 | auto live_lock = live.lockEngineDeferred(); |
| 237 | auto staging_lock = staging->lockEngineDeferred(); |
| 238 | std::lock(live_lock, staging_lock); |
| 239 | return {std::move(live_lock), std::move(staging_lock)}; |
| 240 | } |
| 241 | |
| 242 | struct WriteCore { |
| 243 | explicit WriteCore(DataEngine& data_engine) : engine(data_engine), writer(data_engine.createWriter()) {} |
no test coverage detected