| 2624 | } |
| 2625 | |
| 2626 | EngineCallbackGuard::~EngineCallbackGuard() |
| 2627 | { |
| 2628 | if (m_mutex) { |
| 2629 | m_mutex->leave(); |
| 2630 | } |
| 2631 | |
| 2632 | if (m_tdbb && m_tdbb->getDatabase()) |
| 2633 | { |
| 2634 | Jrd::Attachment* attachment = m_tdbb->getAttachment(); |
| 2635 | if (attachment && m_stable.hasData()) |
| 2636 | { |
| 2637 | Jrd::AttSyncLockGuard guardAsync(*m_stable->getSync(true, true), FB_FUNCTION); |
| 2638 | m_stable->getSync()->enter(FB_FUNCTION); |
| 2639 | |
| 2640 | if (m_stable->getHandle() == attachment) |
| 2641 | attachment->att_ext_connection = m_saveConnection; |
| 2642 | else |
| 2643 | m_stable->getSync()->leave(); |
| 2644 | } |
| 2645 | |
| 2646 | jrd_tra* transaction = m_tdbb->getTransaction(); |
| 2647 | |
| 2648 | if (transaction) |
| 2649 | transaction->tra_callback_count--; |
| 2650 | } |
| 2651 | } |
| 2652 | |
| 2653 | |
| 2654 | // CryptHash |
nothing calls this directly
no test coverage detected