From 63664c52eaef155da54052228ef3caa34b760984 Mon Sep 17 00:00:00 2001 From: Volker Birk Date: Tue, 28 Jan 2020 12:20:19 +0100 Subject: [PATCH] make _inject_sync_event using flag_sync_enabled --- src/adapter.cc | 6 +++++- src/adapter.hh | 3 ++- test/sync_handshake.py | 3 +++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/adapter.cc b/src/adapter.cc index 87eb107..1973dd8 100644 --- a/src/adapter.cc +++ b/src/adapter.cc @@ -7,7 +7,7 @@ namespace pEp { namespace PythonAdapter { Adapter::Adapter(bool unregister_this) - : flag_unregister(unregister_this), flag_sync_enabled(false) + : flag_unregister(unregister_this) { session(init); } @@ -56,6 +56,7 @@ namespace pEp { } ::utility::locked_queue< SYNC_EVENT > * Adapter::q = nullptr; + bool Adapter::flag_sync_enabled = false; void Adapter::shutdown_sync() { @@ -75,6 +76,9 @@ namespace pEp { int Adapter::_inject_sync_event(SYNC_EVENT ev, void *management) { + if (!flag_sync_enabled) + return 1; + if (is_sync_thread(adapter.session())) { PEP_STATUS status = do_sync_protocol_step(adapter.session(), adapter.ui_object(), ev); return status == PEP_STATUS_OK ? 0 : 1; diff --git a/src/adapter.hh b/src/adapter.hh index 16013d9..a996910 100644 --- a/src/adapter.hh +++ b/src/adapter.hh @@ -14,7 +14,6 @@ namespace pEp { class Adapter { bool flag_unregister; - bool flag_sync_enabled; public: Adapter(bool unregister_this = false); @@ -42,6 +41,8 @@ namespace pEp { static int _inject_sync_event(SYNC_EVENT ev, void *management); static ::utility::locked_queue< SYNC_EVENT > *q; + static bool flag_sync_enabled; + bool queue_active() { return !!q; } private: diff --git a/test/sync_handshake.py b/test/sync_handshake.py index 4d37d8f..36ac4d0 100644 --- a/test/sync_handshake.py +++ b/test/sync_handshake.py @@ -193,6 +193,7 @@ def run(name, color=None, imap=False, own_ident=1, leave=False): sync = Thread(target=sync_thread) sync.start() else: + pEp.script_is_implementing_sync() sync = None ui = UserInterface() @@ -201,6 +202,8 @@ def run(name, color=None, imap=False, own_ident=1, leave=False): pEp.leave_device_group() while not the_end: + if pEp.is_sync_active(): + pass # we could react on this if imap: l = miniimap.recv_all() else: