diff --git a/libs/main/core/piinit.cpp b/libs/main/core/piinit.cpp index 86bcdb88..7f162ae3 100644 --- a/libs/main/core/piinit.cpp +++ b/libs/main/core/piinit.cpp @@ -397,4 +397,25 @@ __PIInit_Initializer__::~__PIInit_Initializer__() { } } -#endif // _PIP_INIT_STUB_ +#else // _PIP_INIT_STUB_ +# ifdef PIP_HAS_THREADS +int __PIInit_Initializer__::count_(0); +PIInit * __PIInit_Initializer__::__instance__(0); + + +__PIInit_Initializer__::__PIInit_Initializer__() { + count_++; + if (count_ > 1) return; + __instance__ = nullptr; +} + + +__PIInit_Initializer__::~__PIInit_Initializer__() { + count_--; + if (count_ > 0) return; + if (__instance__ != 0) { + __instance__ = nullptr; + } +} +# endif // PIP_HAS_THREADS +#endif // _PIP_INIT_STUB_ diff --git a/libs/main/core/piinit.h b/libs/main/core/piinit.h index 06fdc0d4..df70c26a 100644 --- a/libs/main/core/piinit.h +++ b/libs/main/core/piinit.h @@ -55,30 +55,6 @@ public: static __PIInit_Initializer__ __piinit_initializer__; -# ifdef _PIP_INIT_STUB_ -# ifndef PIINIT_MICRO_STUB_DEFINED -# define PIINIT_MICRO_STUB_DEFINED - -int __PIInit_Initializer__::count_ = 0; -PIInit * __PIInit_Initializer__::__instance__ = nullptr; - -__PIInit_Initializer__::__PIInit_Initializer__() { - count_++; - if (count_ > 1) return; - __instance__ = nullptr; -} - -__PIInit_Initializer__::~__PIInit_Initializer__() { - count_--; - if (count_ > 0) return; - if (__instance__ != nullptr) { - __instance__ = nullptr; - } -} - -# endif -# endif - //! \~\ingroup Core //! \~\brief