void libMaryInit () { { static bool initialized = false; if (initialized) { return; } initialized = true; } // Setting numeric locale for snprintf() to behave uniformly in all cases. // Specifically, we need dot ('.') to be used as a decimal separator. if (setlocale (LC_NUMERIC, "C") == NULL) fprintf (stderr, "WARNING: Could not set LC_NUMERIC locale to \"C\"\n"); #ifndef LIBMARY_PLATFORM_WIN32 // GStreamer calls setlocale(LC_ALL, ""), which is lame. We fight this with setenv(). if (setenv ("LC_NUMERIC", "C", 1 /* overwrite */) == -1) perror ("WARNING: Could not set LC_NUMERIC environment variable to \"C\""); #endif #ifdef LIBMARY_MT_SAFE #ifdef LIBMARY__OLD_GTHREAD_API if (!g_thread_get_initialized ()) g_thread_init (NULL); #endif #endif initStatCounters (); _libMary_stat = new (std::nothrow) Stat; assert (_libMary_stat); libMary_threadLocalInit (); libMary_platformInit (); // log*() logging is now available. if (!updateTime ()) logE_ (_func, exc->toString()); #ifdef LIBMARY_ENABLE_MWRITEV libMary_mwritevInit (); #endif randomSetSeed ((Uint32) getTimeMicroseconds()); }
void libMaryInit () { { static bool initialized = false; if (initialized) { return; } initialized = true; } // Setting numeric locale for snprintf() to behave uniformly in all cases. // Specifically, we need dot ('.') to be used as a decimal separator. if (setlocale (LC_NUMERIC, "C") == NULL) fprintf (stderr, "WARNING: Could not set LC_NUMERIC locale to \"C\"\n"); #ifndef LIBMARY_PLATFORM_WIN32 // GStreamer calls setlocale(LC_ALL, ""), which is lame. We fight this with setenv(). if (setenv ("LC_NUMERIC", "C", 1 /* overwrite */) == -1) perror ("WARNING: Could not set LC_NUMERIC environment variable to \"C\""); #endif #ifdef LIBMARY_MT_SAFE #ifdef LIBMARY__OLD_GTHREAD_API if (!g_thread_get_initialized ()) g_thread_init (NULL); #endif #endif _libMary_stat = new Stat; libMary_threadLocalInit (); libMary_platformInit (); // log*() logging is now available. if (!updateTime ()) logE_ (_func, exc->toString()); #ifdef LIBMARY_ENABLE_MWRITEV libMary_mwritevInit (); #endif randomSetSeed ((Uint32) getTime()); #ifdef LIBMARY_PLATFORM_WIN32 WSADATA wsaData; WORD wVersionRequested = MAKEWORD(2, 2); int res = WSAStartup(wVersionRequested, &wsaData); if (res != 0) { logE_ (_func_, "WSAStartup failed"); } else { if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 2) { logE_ (_func_, "Could not find a requested version of Winsock.dll"); WSACleanup(); } else { logD_ (_func_, "The Winsock 2.2 dll was found"); } } #endif }