diff options
author | Johnathan Corgan | 2009-08-14 14:04:11 -0700 |
---|---|---|
committer | Johnathan Corgan | 2009-08-14 14:04:11 -0700 |
commit | ad36dccd88eafec6efb8f2428fb21f54d6894cfc (patch) | |
tree | 83b1cbfcc13c0cdba638dcc203fcf466fd17d6b9 /gruel/src/lib/pmt/pmt_int.h | |
parent | ab3b6e3057244259d333513c133450e9efc4dc1b (diff) | |
download | gnuradio-ad36dccd88eafec6efb8f2428fb21f54d6894cfc.tar.gz gnuradio-ad36dccd88eafec6efb8f2428fb21f54d6894cfc.tar.bz2 gnuradio-ad36dccd88eafec6efb8f2428fb21f54d6894cfc.zip |
Applied patch c1258.diff from Stephan Bruns (ticket:359)
This patch changes pmt_t to use boost intrusive pointers.
Patch was modified to apply to new pmt location since the
original patch was created, and add missing include file.
Signed-off-by: Johnathan Corgan <jcorgan@corganenterprises.com>
Diffstat (limited to 'gruel/src/lib/pmt/pmt_int.h')
-rw-r--r-- | gruel/src/lib/pmt/pmt_int.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/gruel/src/lib/pmt/pmt_int.h b/gruel/src/lib/pmt/pmt_int.h index 9aac322a7..ba865b418 100644 --- a/gruel/src/lib/pmt/pmt_int.h +++ b/gruel/src/lib/pmt/pmt_int.h @@ -24,6 +24,7 @@ #include <gruel/pmt.h> #include <boost/utility.hpp> +#include <boost/detail/atomic_count.hpp> /* * EVERYTHING IN THIS FILE IS PRIVATE TO THE IMPLEMENTATION! @@ -35,8 +36,10 @@ namespace pmt { class pmt_base : boost::noncopyable { + mutable boost::detail::atomic_count count_; + protected: - pmt_base(){}; + pmt_base() : count_(0) {}; virtual ~pmt_base(); public: @@ -66,6 +69,9 @@ public: virtual bool is_c32vector() const { return false; } virtual bool is_c64vector() const { return false; } + friend void intrusive_ptr_add_ref(pmt_base* p); + friend void intrusive_ptr_release(pmt_base* p); + # if (PMT_LOCAL_ALLOCATOR) void *operator new(size_t); void operator delete(void *, size_t); |