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

Function release_transaction

src/remote/server/server.cpp:5959–5998  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5957
5958
5959static void release_transaction( Rtr* transaction)
5960{
5961/**************************************
5962 *
5963 * r e l e a s e _ t r a n s a c t i o n
5964 *
5965 **************************************
5966 *
5967 * Functional description
5968 * Release a transaction block and friends.
5969 *
5970 **************************************/
5971 Rdb* rdb = transaction->rtr_rdb;
5972 rdb->rdb_port->releaseObject(transaction->rtr_id);
5973
5974 while (Rbl* blob = transaction->rtr_blobs.getFirst())
5975 release_blob(blob);
5976
5977 while (transaction->rtr_cursors.hasData())
5978 {
5979 Rsr* const statement = transaction->rtr_cursors.pop();
5980 fb_assert(statement->rsr_cursor);
5981 statement->rsr_cursor->release();
5982 statement->rsr_cursor = NULL;
5983 }
5984
5985 for (Rtr** p = &rdb->rdb_transactions; *p; p = &(*p)->rtr_next)
5986 {
5987 if (*p == transaction)
5988 {
5989 *p = transaction->rtr_next;
5990 break;
5991 }
5992 }
5993
5994#ifdef DEBUG_REMOTE_MEMORY
5995 printf("release_transact(server) free transaction %x\n", transaction);
5996#endif
5997 delete transaction;
5998}
5999
6000
6001ISC_STATUS rem_port::seek_blob(P_SEEK* seek, PACKET* sendL)

Callers 6

disconnectMethod · 0.70
drop_databaseMethod · 0.70
end_databaseMethod · 0.70
end_transactionMethod · 0.70
execute_immediateMethod · 0.70
execute_statementMethod · 0.70

Calls 6

releaseObjectMethod · 0.80
release_blobFunction · 0.70
getFirstMethod · 0.45
hasDataMethod · 0.45
popMethod · 0.45
releaseMethod · 0.45

Tested by

no test coverage detected