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

Method initialize

src/jrd/tpc.cpp:50–79  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

48}
49
50bool TipCache::GlobalTpcInitializer::initialize(SharedMemoryBase* sm, bool initFlag)
51{
52 GlobalTpcHeader* header = static_cast<GlobalTpcHeader*>(sm->sh_mem_header);
53
54 if (!initFlag)
55 {
56 if (!checkHeader(header, false))
57 return false;
58
59 m_cache->initTransactionsPerBlock(header->tpc_block_size);
60 m_cache->mapInventoryPages(header);
61 return true;
62 }
63
64 thread_db* tdbb = JRD_get_thread_data();
65 Database* dbb = tdbb->getDatabase();
66
67 // Initialize the shared data header
68 initHeader(header);
69
70 header->latest_commit_number.store(CN_PREHISTORIC, std::memory_order_relaxed);
71 header->latest_statement_id.store(0, std::memory_order_relaxed);
72 header->monitor_generation.store(0, std::memory_order_relaxed);
73 header->tpc_block_size = dbb->dbb_config->getTipCacheBlockSize();
74
75 m_cache->initTransactionsPerBlock(header->tpc_block_size);
76 m_cache->loadInventoryPages(tdbb, header);
77
78 return true;
79}
80
81bool TipCache::SnapshotsInitializer::initialize(SharedMemoryBase* sm, bool initFlag)
82{

Callers

nothing calls this directly

Calls 7

JRD_get_thread_dataFunction · 0.85
mapInventoryPagesMethod · 0.80
getDatabaseMethod · 0.80
loadInventoryPagesMethod · 0.80
storeMethod · 0.45
is_lock_freeMethod · 0.45

Tested by

no test coverage detected