diff --git a/src/engine/engine_util_errmem.c b/src/engine/engine_util_errmem.c index f6c51988..9eb93992 100644 --- a/src/engine/engine_util_errmem.c +++ b/src/engine/engine_util_errmem.c @@ -21,6 +21,12 @@ #include #include +#if defined(_WIN32) +#include +#elif defined(__unix__) || (defined(__APPLE__) && defined(__MACH__)) || defined(__EMSCRIPTEN__) +#include +#endif + #if defined (__unix__) || (defined (__APPLE__) && defined (__MACH__)) #include #endif @@ -152,7 +158,11 @@ static const mjLogConfig* mju_getLogConfigPtr(void) { } else { // another thread is initializing; spin until it completes while (!mj_atomic_load_bool(&env_init_done)) { - // empty +#if defined(_WIN32) + Sleep(0); +#elif defined(__unix__) || (defined(__APPLE__) && defined(__MACH__)) || defined(__EMSCRIPTEN__) + sched_yield(); +#endif } } }