diff options
Diffstat (limited to 'grpc/third_party/xxhash/tests/collisions/threading.c')
-rw-r--r-- | grpc/third_party/xxhash/tests/collisions/threading.c | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/grpc/third_party/xxhash/tests/collisions/threading.c b/grpc/third_party/xxhash/tests/collisions/threading.c deleted file mode 100644 index 51646671..00000000 --- a/grpc/third_party/xxhash/tests/collisions/threading.c +++ /dev/null @@ -1,82 +0,0 @@ -/** - * Copyright (c) 2016 Tino Reichardt - * All rights reserved. - * - * This source code is licensed under both the BSD-style license (found in the - * LICENSE file in the root directory of this source tree) and the GPLv2 (found - * in the COPYING file in the root directory of this source tree). - * - * You can contact the author at: - * - zstdmt source repository: https://github.com/mcmilk/zstdmt - */ - -/** - * This file will hold wrapper for systems, which do not support pthreads - */ - - - /* === Build Macro === */ - - #ifndef POOL_MT // can be defined on command line - # define POOL_MT 1 - #endif - - -/* create fake symbol to avoid empty translation unit warning */ -int g_ZSTD_threading_useles_symbol; - -#if POOL_MT && defined(_WIN32) - -/** - * Windows minimalist Pthread Wrapper - */ - - -/* === Dependencies === */ -#include <process.h> -#include <errno.h> -#include "threading.h" - - -/* === Implementation === */ - -static unsigned __stdcall worker(void *arg) -{ - ZSTD_pthread_t* const thread = (ZSTD_pthread_t*) arg; - thread->arg = thread->start_routine(thread->arg); - return 0; -} - -int ZSTD_pthread_create(ZSTD_pthread_t* thread, const void* unused, - void* (*start_routine) (void*), void* arg) -{ - (void)unused; - thread->arg = arg; - thread->start_routine = start_routine; - thread->handle = (HANDLE) _beginthreadex(NULL, 0, worker, thread, 0, NULL); - - if (!thread->handle) - return errno; - else - return 0; -} - -int ZSTD_pthread_join(ZSTD_pthread_t thread, void **value_ptr) -{ - DWORD result; - - if (!thread.handle) return 0; - - result = WaitForSingleObject(thread.handle, INFINITE); - switch (result) { - case WAIT_OBJECT_0: - if (value_ptr) *value_ptr = thread.arg; - return 0; - case WAIT_ABANDONED: - return EINVAL; - default: - return (int)GetLastError(); - } -} - -#endif /* POOL_MT */ |