mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2026-05-09 04:13:28 -05:00
Merge 8e219fc763 into d19952cc11
This commit is contained in:
commit
d8014faea2
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user