#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_THREAD_STATE_STORAGE_H_
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_THREAD_STATE_STORAGE_H_
#include <cstdint>
#include "base/compiler_specific.h"
#include "third_party/blink/renderer/platform/heap/thread_local.h"
#include "third_party/blink/renderer/platform/platform_export.h"
#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
namespace cppgc {
class AllocationHandle;
class HeapHandle;
}
namespace blink {
class ThreadState;
class ThreadStateStorage;
enum ThreadAffinity { … };
template <typename T, typename = void>
struct ThreadingTrait { … };
extern constinit thread_local ThreadStateStorage* g_thread_specific_
__attribute__((tls_model …));
class PLATFORM_EXPORT ThreadStateStorage final { … };
template <ThreadAffinity>
class ThreadStateStorageFor;
template <>
class ThreadStateStorageFor<kMainThreadOnly> { … };
template <>
class ThreadStateStorageFor<kAnyThread> { … };
}
#endif