From 0517b9be69232a0efba0b30503b74dce4eb347a1 Mon Sep 17 00:00:00 2001 From: heck Date: Tue, 30 Mar 2021 03:00:26 +0200 Subject: [PATCH] Add Adapter::inject_sync_shutdown() to be used if _adapter_manages_sync_thread --- src/Adapter.cc | 8 +++++++- src/Adapter.hh | 5 +++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/Adapter.cc b/src/Adapter.cc index 95e3655..23cd2fe 100644 --- a/src/Adapter.cc +++ b/src/Adapter.cc @@ -201,13 +201,19 @@ namespace pEp { return _session.get(); } + // public + void inject_sync_shutdown() { + pEpLog("called"); + _inject_sync_event(nullptr, nullptr); + } + // public void shutdown() { pEpLog("called"); if (_sync_thread.joinable()) { pEpLog("sync_is_running - injecting null event"); - _inject_sync_event(nullptr, nullptr); + inject_sync_shutdown(); _sync_thread.join(); } } diff --git a/src/Adapter.hh b/src/Adapter.hh index 7ab0dcd..41c88b7 100644 --- a/src/Adapter.hh +++ b/src/Adapter.hh @@ -77,6 +77,11 @@ namespace pEp { extern thread_local Session session; + // only injects a NULL event into sync_event_queue + // Use this if adapter_manages_sync_thread + // Inject first, then join your thread. + void inject_sync_shutdown(); + // injects a NULL event into sync_event_queue to denote sync thread to // shutdown, and joins & removes the sync thread void shutdown();