1 // =================================
 2 // Copyright (c) 2021 Seppo Laakko
 3 // Distributed under the MIT license
 4 // =================================
 5 
 6 #ifndef CMAJOR_RT_THREAD_INCLUDED
 7 #define CMAJOR_RT_THREAD_INCLUDED
 8 #include <cmajor/rt/RtApi.hpp>
 9 #include <stdint.h>
10 
11 extern "C" int32_t RtGetHardwareConcurrency();
12 extern "C" int32_t RtStartThreadFunction(void* function);
13 extern "C" int32_t RtStartThreadFunctionWithParam(void* function, void* param);
14 extern "C" int32_t RtStartThreadMethod(void* classDelegate);
15 extern "C" int32_t RtStartThreadMethodWithParam(void* classDelegate, void* param);
16 extern "C" bool RtJoinThread(int32_t threadId);
17 extern "C" int32_t RtThisThreadId();
18 
19 namespace cmajor { namespace rt {
20 
21 void InitThread();
22 void DoneThread();
23 
24 } } // namespace cmajor::rt
25 
26 #endif // CMAJOR_RT_THREAD_INCLUDED