Fix the Windows pthread_create shim
The current implementation doesn't actually set the out parameter, and it returns 0 on failure instead of on success.
This commit is contained in:
parent
4e5674a5d5
commit
0bfe728b84
@ -143,8 +143,8 @@ if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES
|
|||||||
else()
|
else()
|
||||||
message(STATUS "x86 detected")
|
message(STATUS "x86 detected")
|
||||||
if (MSVC)
|
if (MSVC)
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /arch:AVX2")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:AVX2")
|
||||||
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /arch:AVX2")
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /arch:AVX2")
|
||||||
else()
|
else()
|
||||||
if (EMSCRIPTEN)
|
if (EMSCRIPTEN)
|
||||||
# we require support for WASM SIMD 128-bit
|
# we require support for WASM SIMD 128-bit
|
||||||
|
10
ggml.c
10
ggml.c
@ -37,8 +37,14 @@ typedef HANDLE pthread_t;
|
|||||||
|
|
||||||
typedef DWORD thread_ret_t;
|
typedef DWORD thread_ret_t;
|
||||||
static int pthread_create(pthread_t* out, void* unused, thread_ret_t(*func)(void*), void* arg) {
|
static int pthread_create(pthread_t* out, void* unused, thread_ret_t(*func)(void*), void* arg) {
|
||||||
out = CreateThread(NULL, 0, func, arg, 0, NULL);
|
HANDLE handle = CreateThread(NULL, 0, func, arg, 0, NULL);
|
||||||
return out != NULL;
|
if (handle == NULL)
|
||||||
|
{
|
||||||
|
return EAGAIN;
|
||||||
|
}
|
||||||
|
|
||||||
|
*out = handle;
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int pthread_join(pthread_t thread, void* unused) {
|
static int pthread_join(pthread_t thread, void* unused) {
|
||||||
|
Loading…
Reference in New Issue
Block a user