MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / EXE_release

Function EXE_release

src/jrd/exe.cpp:736–764  ·  view source on GitHub ↗

Release a request instance.

Source from the content-addressed store, hash-verified

734
735// Release a request instance.
736void EXE_release(thread_db* tdbb, Request* request)
737{
738 DEV_BLKCHK(request, type_req);
739
740 SET_TDBB(tdbb);
741
742 EXE_unwind(tdbb, request);
743
744 // system requests are released after all attachments gone and with
745 // req_attachment not cleared
746
747 const Jrd::Attachment* attachment = tdbb->getAttachment();
748
749 if (request->req_attachment && request->req_attachment == attachment)
750 {
751 FB_SIZE_T pos;
752 if (request->req_attachment->att_requests.find(request, pos))
753 request->req_attachment->att_requests.remove(pos);
754
755 request->req_attachment = nullptr;
756 }
757
758 request->req_flags &= ~req_in_use;
759 if (request->req_timer)
760 {
761 request->req_timer->stop();
762 request->req_timer = nullptr;
763 }
764}
765
766
767void EXE_send(thread_db* tdbb, Request* request, USHORT msg, ULONG length, const void* buffer)

Callers 2

destroyMethod · 0.85
releaseMethod · 0.85

Calls 6

SET_TDBBFunction · 0.85
EXE_unwindFunction · 0.85
getAttachmentMethod · 0.45
findMethod · 0.45
removeMethod · 0.45
stopMethod · 0.45

Tested by

no test coverage detected