]> git.sesse.net Git - vlc/blobdiff - src/win32/thread.c
win32: do not straddle on POSIX threads symbols
[vlc] / src / win32 / thread.c
index 451aa39666856cb342ca62e8826f887167eb5038..45abc4e4155b4a4926c3ab4f580663076999f0ea 100644 (file)
@@ -162,9 +162,9 @@ void vlc_mutex_unlock (vlc_mutex_t *p_mutex)
 /*** Condition variables ***/
 enum
 {
-    CLOCK_STATIC=0, /* must be zero for VLC_STATIC_COND */
-    CLOCK_MONOTONIC,
-    CLOCK_REALTIME,
+    VLC_CLOCK_STATIC=0, /* must be zero for VLC_STATIC_COND */
+    VLC_CLOCK_MONOTONIC,
+    VLC_CLOCK_REALTIME,
 };
 
 static void vlc_cond_init_common (vlc_cond_t *p_condvar, unsigned clock)
@@ -178,12 +178,12 @@ static void vlc_cond_init_common (vlc_cond_t *p_condvar, unsigned clock)
 
 void vlc_cond_init (vlc_cond_t *p_condvar)
 {
-    vlc_cond_init_common (p_condvar, CLOCK_MONOTONIC);
+    vlc_cond_init_common (p_condvar, VLC_CLOCK_MONOTONIC);
 }
 
 void vlc_cond_init_daytime (vlc_cond_t *p_condvar)
 {
-    vlc_cond_init_common (p_condvar, CLOCK_REALTIME);
+    vlc_cond_init_common (p_condvar, VLC_CLOCK_REALTIME);
 }
 
 void vlc_cond_destroy (vlc_cond_t *p_condvar)
@@ -243,10 +243,10 @@ int vlc_cond_timedwait (vlc_cond_t *p_condvar, vlc_mutex_t *p_mutex,
         mtime_t total;
         switch (p_condvar->clock)
         {
-            case CLOCK_MONOTONIC:
+            case VLC_CLOCK_MONOTONIC:
                 total = mdate();
                 break;
-            case CLOCK_REALTIME: /* FIXME? sub-second precision */
+            case VLC_CLOCK_REALTIME: /* FIXME? sub-second precision */
                 total = CLOCK_FREQ * time (NULL);
                 break;
             default:
@@ -651,6 +651,7 @@ static mtime_t mdate_tick (void)
     static_assert ((CLOCK_FREQ % 1000) == 0, "Broken frequencies ratio");
     return ts * (CLOCK_FREQ / 1000);
 }
+#if !VLC_WINSTORE_APP
 #include <mmsystem.h>
 static mtime_t mdate_multimedia (void)
 {
@@ -660,6 +661,7 @@ static mtime_t mdate_multimedia (void)
     static_assert ((CLOCK_FREQ % 1000) == 0, "Broken frequencies ratio");
     return ts * (CLOCK_FREQ / 1000);
 }
+#endif
 
 static mtime_t mdate_perf (void)
 {
@@ -680,7 +682,7 @@ static mtime_t mdate_wall (void)
     FILETIME ts;
     ULARGE_INTEGER s;
 
-#if (_WIN32_WINNT >= 0x0602)
+#if (_WIN32_WINNT >= 0x0602) && !VLC_WINSTORE_APP
     GetSystemTimePreciseAsFileTime (&ts);
 #else
     GetSystemTimeAsFileTime (&ts);
@@ -723,7 +725,11 @@ static void SelectClockSource (vlc_object_t *obj)
         return;
     }
 
+#if VLC_WINSTORE_APP
+    const char *name = "perf";
+#else
     const char *name = "multimedia";
+#endif
     char *str = var_InheritString (obj, "clock-source");
     if (str != NULL)
         name = str;
@@ -745,7 +751,7 @@ static void SelectClockSource (vlc_object_t *obj)
     if (!strcmp (name, "tick"))
     {
         msg_Dbg (obj, "using Windows time as clock source");
-#if (_WIN32_WINNT < 0x0601)
+#if (_WIN32_WINNT < 0x0600)
         HANDLE h = GetModuleHandle (_T("kernel32.dll"));
         if (unlikely(h == NULL))
             abort ();
@@ -755,6 +761,7 @@ static void SelectClockSource (vlc_object_t *obj)
 #endif
         mdate_selected = mdate_tick;
     }
+#if !VLC_WINSTORE_APP
     else
     if (!strcmp (name, "multimedia"))
     {
@@ -767,6 +774,7 @@ static void SelectClockSource (vlc_object_t *obj)
                  caps.wPeriodMin, caps.wPeriodMax);
         mdate_selected = mdate_multimedia;
     }
+#endif
     else
     if (!strcmp (name, "perf"))
     {
@@ -825,9 +833,11 @@ size_t EnumClockSource (vlc_object_t *obj, const char *var,
         names[n] = xstrdup ("Windows time");
         n++;
     }
+#if !VLC_WINSTORE_APP
     values[n] = xstrdup ("multimedia");
     names[n] = xstrdup ("Multimedia timers");
     n++;
+#endif
     values[n] = xstrdup ("perf");
     names[n] = xstrdup ("Performance counters");
     n++;
@@ -923,7 +933,7 @@ void vlc_threads_setup (libvlc_int_t *p_libvlc)
     SelectClockSource (VLC_OBJECT(p_libvlc));
 }
 
-extern vlc_rwlock_t config_lock, msg_lock;
+extern vlc_rwlock_t config_lock;
 BOOL WINAPI DllMain (HINSTANCE, DWORD, LPVOID);
 
 BOOL WINAPI DllMain (HINSTANCE hinstDll, DWORD fdwReason, LPVOID lpvReserved)
@@ -939,12 +949,10 @@ BOOL WINAPI DllMain (HINSTANCE hinstDll, DWORD fdwReason, LPVOID lpvReserved)
             vlc_cond_init (&super_variable);
             vlc_threadvar_create (&thread_key, NULL);
             vlc_rwlock_init (&config_lock);
-            vlc_rwlock_init (&msg_lock);
             vlc_CPU_init ();
             break;
 
         case DLL_PROCESS_DETACH:
-            vlc_rwlock_destroy (&msg_lock);
             vlc_rwlock_destroy (&config_lock);
             vlc_threadvar_delete (&thread_key);
             vlc_cond_destroy (&super_variable);