This commit is contained in:
Jordan Woyak 2026-05-08 20:25:33 -04:00 committed by GitHub
commit d8014faea2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 20 additions and 16 deletions

View File

@ -27,11 +27,9 @@ if (CMAKE_VERSION VERSION_LESS "3.25" AND CMAKE_SYSTEM_NAME MATCHES "Linux")
set(LINUX TRUE)
endif()
if (MSVC)
set(CMAKE_C_STANDARD 99)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
endif()
set(CMAKE_C_STANDARD 99)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(COMPILER ${CMAKE_CXX_COMPILER_ID})
if (COMPILER STREQUAL "GNU")
@ -159,6 +157,7 @@ list(APPEND CMAKE_MODULE_PATH
# Support functions
include(CheckAndAddFlag)
include(CheckCCompilerFlag)
include(CheckCXXSourceCompiles)
include(CheckSymbolExists)
include(DolphinCompileDefinitions)
include(DolphinDisableWarningsMSVC)
@ -166,6 +165,20 @@ include(DolphinLibraryTools)
include(GNUInstallDirs)
include(RemoveCompileFlag)
# std::jthread is guarded behind -fexperimental-library prior to libc++ version 20
check_cxx_source_compiles([[
#if defined(_LIBCPP_VERSION)
#if _LIBCPP_VERSION < 200000
#error libc++ version < 20
#endif
#endif
int main() {}
]] IS_JTHREAD_STABLE)
if(NOT IS_JTHREAD_STABLE)
add_compile_options(-fexperimental-library)
endif()
# Enable folders for IDE
set_property(GLOBAL PROPERTY USE_FOLDERS ON)

View File

@ -16,8 +16,6 @@ if(CMAKE_SYSTEM_NAME MATCHES "Windows")
endif()
if (NOT MSVC)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
endif()

View File

@ -24,12 +24,6 @@ public:
{
}
~CacheFiller()
{
m_stop_thread.store(true, std::memory_order_relaxed);
m_thread.join();
}
bool Read(u64 offset, u64 size, u8* out_ptr)
{
if (size == 0)
@ -126,7 +120,7 @@ private:
while (true)
{
if (m_stop_thread.load(std::memory_order_relaxed))
if (m_thread.get_stop_token().stop_requested())
{
INFO_LOG_FMT(DISCIO, "CachedBlobReader: Stopped");
break;
@ -178,8 +172,7 @@ private:
DiscScrubber m_scrubber;
std::atomic_bool m_stop_thread{};
std::thread m_thread;
std::jthread m_thread;
};
class CachedBlobReader final : public BlobReader