Difference between revisions of "HOWTO resolve circular references in ns-3 memory disposal"

From Nsnam
Jump to: navigation, search
(Created page with "class A : public Object { public: static TypeId GetTypeId (void); void CallbackMethodA(); Callback<void> m_callback; }; class B : public Object { public: static TypeId ...")
 
Line 1: Line 1:
 +
== HOWTO resolve smart pointer circular references in ns-3 memory disposal ==
 +
 
class A : public Object
 
class A : public Object
 
{
 
{

Revision as of 16:21, 30 August 2013

HOWTO resolve smart pointer circular references in ns-3 memory disposal

class A : public Object { public: static TypeId GetTypeId (void);

void CallbackMethodA();

Callback<void> m_callback; };

class B : public Object { public: static TypeId GetTypeId (void);

void CallbackMethodB();

Callback<void> m_callback; };

int main(int argc, char* argv[]) { Ptr<A> a = CreateObject<A>(); Ptr b = CreateObject<B>();

a->m_callback = MakeCallback (&B::CallbackMethodB, b); b->m_callback = MakeCallback (&A::CallbackMethodA, a); }

==15749== LEAK SUMMARY: ==15749== definitely lost: 40 bytes in 1 blocks ==15749== indirectly lost: 152 bytes in 5 blocks ==15749== possibly lost: 0 bytes in 0 blocks ==15749== still reachable: 10,360 bytes in 5 blocks ==15749== suppressed: 0 bytes in 0 blocks