#include #define INTERLOCKED static StaticCriticalSection MK__s; CriticalSection::Lock COMBINE(MK__s, _lock)(MK__s) #define INITLOCK \ static volatile bool init; \ if(!init) \ for(CriticalSection::LockMain __; !init; init = true) \ CONSOLE_APP_MAIN { for(static volatile bool b; !b;) \ for(static StaticCriticalSection section; !b;) \ for(CriticalSection::Lock lock(section); !b; b = true) LOG("INIT!"); } }