mirror of
https://github.com/wolfpld/tracy.git
synced 2026-09-29 13:35:58 +00:00
Workaround libc++ issues.
This commit is contained in:
29
profiler/src/EmscriptenShim.hpp
Normal file
29
profiler/src/EmscriptenShim.hpp
Normal file
@@ -0,0 +1,29 @@
|
||||
#ifndef __EMSCRIPTENSHIM_HPP__
|
||||
#define __EMSCRIPTENSHIM_HPP__
|
||||
|
||||
#ifdef __EMSCRIPTEN__
|
||||
|
||||
namespace std {
|
||||
|
||||
template<typename T>
|
||||
struct atomic<shared_ptr<T>> {
|
||||
shared_ptr<T> value;
|
||||
|
||||
bool compare_exchange_weak(shared_ptr<T>& expected, const shared_ptr<T>& desired) noexcept {
|
||||
return atomic_compare_exchange_weak_explicit(&value, &expected, &desired, std::memory_order_acq_rel, std::memory_order_acquire);
|
||||
}
|
||||
|
||||
shared_ptr<T> load(memory_order order = std::memory_order_seq_cst) const noexcept {
|
||||
return atomic_load_explicit(&value, order);
|
||||
}
|
||||
|
||||
void store(shared_ptr<T> desired, memory_order order = std::memory_order_seq_cst) noexcept {
|
||||
atomic_store_explicit(&value, desired, order);
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace std
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -58,6 +58,7 @@
|
||||
|
||||
#include "Backend.hpp"
|
||||
#include "ConnectionHistory.hpp"
|
||||
#include "EmscriptenShim.hpp"
|
||||
#include "Filters.hpp"
|
||||
#include "Fonts.hpp"
|
||||
#include "HttpRequest.hpp"
|
||||
|
||||
Reference in New Issue
Block a user