1 // =================================
 2 // Copyright (c) 2021 Seppo Laakko
 3 // Distributed under the MIT license
 4 // =================================
 5 
 6 #ifndef CMAJOR_RT_STATICS_INCLUDED
 7 #define CMAJOR_RT_STATICS_INCLUDED
 8 #include <cmajor/rt/RtApi.hpp>
 9 #include <boost/uuid/uuid.hpp>
10 #include <vector>
11 #include <stdint.h>
12 
13 extern "C" void RtBeginStaticInitCriticalSection(void* staticClassId);
14 extern "C" void RtEndStaticInitCriticalSection(void* staticClassId);
15 extern "C" void RtEnqueueDestruction(void* destructor, void* arg);
16 
17 namespace cmajor { namespace rt {
18 
19 void AllocateMutexes(const std::std::vector<boost::uuids::uuid>&staticClassIds);
20 
21 void InitStatics();
22 void DoneStatics();
23 
24 } }  // namespace cmajor::rt
25 
26 #endif // CMAJOR_RT_STATICS_INCLUDED