// mld.h,v 1.5 1998/11/15 17:05:29 jcej Exp #ifndef MLD_H #define MLD_H #include "ace/Synch.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ #include "ace/Singleton.h" /* This is a cheap memory leak detector. Each class I want to watch over contains an mld object. The mld object's ctor increments a global counter while the dtor decrements it. If the counter is non-zero when the program is ready to exit then there may be a leak. */ class mld { public: mld (void); ~mld (void); static int value (void); protected: static ACE_Atomic_Op < ACE_Mutex, int >counter_; }; // ================================================ /* Just drop 'MLD' anywhere in your class definition to get cheap memory leak detection for your class. */ #define MLD mld mld_ /* Use 'MLD_COUNTER' in main() to see if things are OK. */ #define MLD_COUNTER mld::value() // ================================================ #endif