~aleteoryx/muditaos

ref: f9490f61e42a1740bbbf5c7df937a2bc77c477d9 muditaos/module-services/service-gui/tests/MockedSynchronizationMechanism.hpp -rw-r--r-- 897 bytes
f9490f61 — Lefucjusz Revert "[BH-1673] Harmony random resets fixes" 2 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include <SynchronizationMechanism.hpp>

#include "mutex.hpp"

#include <chrono>
#include <thread>

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()
{}