The current implementation doesn't actually set the out parameter,
and it returns 0 on failure instead of on success.
else()
message(STATUS "x86 detected")
if (MSVC)
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /arch:AVX2")
- set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /arch:AVX2")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:AVX2")
+ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /arch:AVX2")
else()
if (EMSCRIPTEN)
# we require support for WASM SIMD 128-bit
typedef DWORD thread_ret_t;
static int pthread_create(pthread_t* out, void* unused, thread_ret_t(*func)(void*), void* arg) {
- out = CreateThread(NULL, 0, func, arg, 0, NULL);
- return out != NULL;
+ HANDLE handle = CreateThread(NULL, 0, func, arg, 0, NULL);
+ if (handle == NULL)
+ {
+ return EAGAIN;
+ }
+
+ *out = handle;
+ return 0;
}
static int pthread_join(pthread_t thread, void* unused) {