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

Function TRA_get_prior_request

src/jrd/tra.cpp:118–144  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

116
117
118Request* TRA_get_prior_request(thread_db* tdbb)
119{
120 // See if there is any request right above us in the call stack
121 Request* org_request;
122 thread_db* jrd_ctx = tdbb;
123 do
124 {
125 // Check regular request call stack
126 org_request = jrd_ctx->getRequest();
127 if (org_request)
128 break;
129
130 // Check for engine context switch (EXECUTE STATEMENT, etc)
131 ThreadData* ctx = jrd_ctx;
132 jrd_ctx = NULL;
133 while( (ctx = ctx->getPriorContext()) )
134 {
135 if (ctx->getType() == ThreadData::tddDBB)
136 {
137 jrd_ctx = static_cast<thread_db*>(ctx);
138 break;
139 }
140 }
141 } while (jrd_ctx);
142
143 return org_request;
144}
145
146void TRA_setup_request_snapshot(Jrd::thread_db* tdbb, Jrd::Request* request)
147{

Callers 1

Calls 3

getPriorContextMethod · 0.80
getRequestMethod · 0.45
getTypeMethod · 0.45

Tested by

no test coverage detected