| 271 | } |
| 272 | |
| 273 | void Applier::shutdown(thread_db* tdbb) |
| 274 | { |
| 275 | const auto dbb = tdbb->getDatabase(); |
| 276 | const auto attachment = tdbb->getAttachment(); |
| 277 | |
| 278 | if (!(dbb->dbb_flags & DBB_bugcheck)) |
| 279 | { |
| 280 | cleanupTransactions(tdbb); |
| 281 | CMP_release(tdbb, m_request); |
| 282 | } |
| 283 | m_request = nullptr; // already deleted by pool |
| 284 | m_record = nullptr; // already deleted by pool |
| 285 | m_bitmap = nullptr; // already deleted by pool |
| 286 | |
| 287 | if (attachment) |
| 288 | attachment->att_repl_appliers.findAndRemove(this); |
| 289 | |
| 290 | if (m_interface) |
| 291 | { |
| 292 | m_interface->resetHandle(); |
| 293 | m_interface = nullptr; |
| 294 | } |
| 295 | |
| 296 | delete this; |
| 297 | } |
| 298 | |
| 299 | void Applier::process(thread_db* tdbb, ULONG length, const UCHAR* data) |
| 300 | { |
nothing calls this directly
no test coverage detected