diff options
| author | Mahmoud <[email protected]> | 2018-11-18 12:05:40 -0500 |
|---|---|---|
| committer | Mahmoud <[email protected]> | 2018-11-18 12:05:40 -0500 |
| commit | 773dcd0072e8d5e38377632f307d93ee856f5f73 (patch) | |
| tree | 1d86d6c0b0c695eeef25490bb79ec53c9bd275cb /debug_tools/WatchYourStep/ptxjitplus/inc/multithreading.h | |
| parent | 72c30bd7a251081eb7453ff4706ddcda30c744ac (diff) | |
| parent | 8ec70c69eb89c1fa836c233be3e4c478602d9bb7 (diff) | |
Merge branch 'dev' of https://github.com/gpgpu-sim/gpgpu-sim_distribution into dev
Diffstat (limited to 'debug_tools/WatchYourStep/ptxjitplus/inc/multithreading.h')
| -rw-r--r-- | debug_tools/WatchYourStep/ptxjitplus/inc/multithreading.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/debug_tools/WatchYourStep/ptxjitplus/inc/multithreading.h b/debug_tools/WatchYourStep/ptxjitplus/inc/multithreading.h new file mode 100644 index 0000000..f31b727 --- /dev/null +++ b/debug_tools/WatchYourStep/ptxjitplus/inc/multithreading.h @@ -0,0 +1,60 @@ +/* + * Copyright 1993-2013 NVIDIA Corporation. All rights reserved. + * + * Please refer to the NVIDIA end user license agreement (EULA) associated + * with this source code for terms and conditions that govern your use of + * this software. Any use, reproduction, disclosure, or distribution of + * this software and related documentation outside the terms of the EULA + * is strictly prohibited. + * + */ + +#ifndef MULTITHREADING_H +#define MULTITHREADING_H + + +//Simple portable thread library. + +//Windows threads. +#if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) +#include <windows.h> + +typedef HANDLE CUTThread; +typedef unsigned(WINAPI *CUT_THREADROUTINE)(void *); + +#define CUT_THREADPROC unsigned WINAPI +#define CUT_THREADEND return 0 + +#else +//POSIX threads. +#include <pthread.h> + +typedef pthread_t CUTThread; +typedef void *(*CUT_THREADROUTINE)(void *); + +#define CUT_THREADPROC void +#define CUT_THREADEND +#endif + + +#ifdef __cplusplus +extern "C" { +#endif + +//Create thread. +CUTThread cutStartThread(CUT_THREADROUTINE, void *data); + +//Wait for thread to finish. +void cutEndThread(CUTThread thread); + +//Destroy thread. +void cutDestroyThread(CUTThread thread); + +//Wait for multiple threads. +void cutWaitForThreads(const CUTThread *threads, int num); + +#ifdef __cplusplus +} //extern "C" +#endif + +#endif //MULTITHREADING_H |
