MCPcopy Create free account
hub / github.com/MegEngine/MegEngine / alloc

Method alloc

imperative/src/impl/event_pool.cpp:25–40  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

23 return **sm_pool;
24}
25CompNode::Event* EventPool::alloc(CompNode cn) {
26 CompNode::EventPool* pool;
27 {
28 MGB_LOCK_GUARD(m_lock);
29 auto iter = m_cn2pool.find(cn);
30 if (iter == m_cn2pool.end()) {
31 iter = m_cn2pool
32 .emplace(
33 std::piecewise_construct, std::forward_as_tuple(cn),
34 std::forward_as_tuple(cn, m_flags))
35 .first;
36 }
37 pool = &iter->second;
38 }
39 return pool->alloc();
40}
41std::shared_ptr<CompNode::Event> EventPool::alloc_shared(CompNode cn) {
42 auto* raw_event = alloc(cn);
43 return {raw_event, [this](CompNode::Event* event) { this->free(event); }};

Callers 3

do_recordMethod · 0.45
fetch_valueMethod · 0.45
allocateMethod · 0.45

Calls 3

findMethod · 0.45
endMethod · 0.45
emplaceMethod · 0.45

Tested by

no test coverage detected