diff --git a/src/pvxs/client.h b/src/pvxs/client.h index bc0c80f..a8cb464 100644 --- a/src/pvxs/client.h +++ b/src/pvxs/client.h @@ -359,6 +359,7 @@ public: void hurryUp(); explicit operator bool() const { return pvt.operator bool(); } + size_t use_count() const { return pvt.use_count(); } private: std::shared_ptr pvt; }; diff --git a/test/testget.cpp b/test/testget.cpp index e1fff9e..089ef62 100644 --- a/test/testget.cpp +++ b/test/testget.cpp @@ -43,6 +43,12 @@ struct Tester { initial["value"] = 42; } + ~Tester() + { + if(cli.use_count()!=1u) + testAbort("Tester Context leak"); + } + void testWaiter() { testShow()<<__func__; diff --git a/test/testmon.cpp b/test/testmon.cpp index d3e3e59..855bbb8 100644 --- a/test/testmon.cpp +++ b/test/testmon.cpp @@ -46,6 +46,12 @@ struct BasicTest { initial["value"] = 42; } + ~BasicTest() + { + if(cli.use_count()!=1u) + testAbort("Tester Context leak"); + } + void subscribe(const char *name) { sub = cli.monitor(name)