// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #include #include "mutex.hpp" #include #include class MockedSynchronizationMechanism : public service::gui::SynchronizationMechanism { public: void wait(cpp_freertos::Mutex &lock, std::chrono::milliseconds timeout, Predicate predicate) override; void notify() override; }; void MockedSynchronizationMechanism::wait(cpp_freertos::Mutex &lock, std::chrono::milliseconds timeout, Predicate predicate) { using namespace std::chrono_literals; while (!predicate()) { lock.Unlock(); std::this_thread::sleep_for(10ms); lock.Lock(); } } void MockedSynchronizationMechanism::notify() {}