|
|
@@ -8,6 +8,7 @@
|
|
|
#include <chrono>
|
|
|
#include <cstdlib>
|
|
|
#include <memory>
|
|
|
+#include <mutex>
|
|
|
#include <string>
|
|
|
|
|
|
#include "core/core.h"
|
|
|
@@ -21,9 +22,11 @@ std::array<s64, 5> delays{};
|
|
|
|
|
|
std::bitset<CB_IDS.size()> callbacks_ran_flags;
|
|
|
u64 expected_callback = 0;
|
|
|
+std::mutex control_mutex;
|
|
|
|
|
|
template <unsigned int IDX>
|
|
|
void HostCallbackTemplate(std::uintptr_t user_data, std::chrono::nanoseconds ns_late) {
|
|
|
+ std::unique_lock<std::mutex> lk(control_mutex);
|
|
|
static_assert(IDX < CB_IDS.size(), "IDX out of range");
|
|
|
callbacks_ran_flags.set(IDX);
|
|
|
REQUIRE(CB_IDS[IDX] == user_data);
|