diff --git a/src/adapter.cc b/src/adapter.cc index 1831c3a..68e94e6 100644 --- a/src/adapter.cc +++ b/src/adapter.cc @@ -6,7 +6,8 @@ namespace pEp { namespace PythonAdapter { - Adapter::Adapter() + Adapter::Adapter(bool unregister_this) + : flag_unregister(unregister_this) { session(init); } @@ -14,6 +15,12 @@ namespace pEp { Adapter::~Adapter() { session(release); + if (flag_unregister) { + while (!queue().empty()) { + SYNC_EVENT ev = queue().pop_front(); + free_Sync_event(ev); + } + } } PEP_SESSION Adapter::session(session_action action) diff --git a/src/adapter.hh b/src/adapter.hh index 256d05f..67c2235 100644 --- a/src/adapter.hh +++ b/src/adapter.hh @@ -13,8 +13,10 @@ namespace pEp { using Message = pEp::PythonAdapter::Message; class Adapter { + bool flag_unregister; + public: - Adapter(); + Adapter(bool unregister_this = false); virtual ~Adapter(); virtual void messageToSend(Message msg) { diff --git a/src/pEpmodule.cc b/src/pEpmodule.cc index 17dd229..58a283c 100644 --- a/src/pEpmodule.cc +++ b/src/pEpmodule.cc @@ -20,7 +20,7 @@ namespace pEp { namespace PythonAdapter { using namespace std; - Adapter adapter; + Adapter adapter(true); static const char *version_string = "p≡p Python adapter version 0.2"; static string about()