From a337a06a7de6bab79541010dd5f9ec78b926f6bc Mon Sep 17 00:00:00 2001 From: Alex Tiernan-Berry Date: Sat, 7 Feb 2026 15:24:27 +0000 Subject: [PATCH] Add WHOA_SYSTEM_WEB support for Time and TLS Extend chrono-based time and pthread TLS to web platform. Co-Authored-By: Claude Opus 4.5 --- common/Time.cpp | 7 +++++-- common/thread/OsTls.cpp | 10 +++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/common/Time.cpp b/common/Time.cpp index e31738d..2bf3d5c 100644 --- a/common/Time.cpp +++ b/common/Time.cpp @@ -5,8 +5,11 @@ #elif defined(WHOA_SYSTEM_MAC) #include #include -#elif defined(WHOA_SYSTEM_LINUX) +#elif defined(WHOA_SYSTEM_LINUX) || defined(WHOA_SYSTEM_WEB) #include +#endif + +#if defined(WHOA_SYSTEM_LINUX) #include #endif @@ -25,7 +28,7 @@ uint64_t OsGetAsyncTimeMs() { return ticks * (timebase.numer / timebase.denom) / 1000000; -#elif defined(WHOA_SYSTEM_LINUX) +#elif defined(WHOA_SYSTEM_LINUX) || defined(WHOA_SYSTEM_WEB) auto now = std::chrono::steady_clock::now(); uint64_t ticks = std::chrono::duration_cast(now.time_since_epoch()).count(); return ticks; diff --git a/common/thread/OsTls.cpp b/common/thread/OsTls.cpp index d15e7bf..6d4c6fc 100644 --- a/common/thread/OsTls.cpp +++ b/common/thread/OsTls.cpp @@ -5,13 +5,13 @@ #include #endif -#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX) +#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX) || defined(WHOA_SYSTEM_WEB) #include #include #include #endif -#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX) +#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX) || defined(WHOA_SYSTEM_WEB) typedef void* TLSData; struct TLSSlot : public TSLinkedNode { @@ -32,7 +32,7 @@ int32_t OsTlsAlloc() { return TlsAlloc(); #endif -#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX) +#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX) || defined(WHOA_SYSTEM_WEB) OsTls::s_tlsLock.Enter(); if (!OsTls::s_initialized) { @@ -54,7 +54,7 @@ void* OsTlsGetValue(uint32_t tlsIndex) { return TlsGetValue(tlsIndex); #endif -#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX) +#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX) || defined(WHOA_SYSTEM_WEB) if (!OsTls::s_initialized) { return nullptr; } @@ -84,7 +84,7 @@ int32_t OsTlsSetValue(uint32_t tlsIndex, void* tlsValue) { return TlsSetValue(tlsIndex, tlsValue); #endif -#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX) +#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX) || defined(WHOA_SYSTEM_WEB) if (!OsTls::s_initialized) { return 0; }