check: Use g_thread_yield instead of g_usleep(1)
authorSeungha Yang <seungha@centricular.com>
Tue, 7 Jul 2020 20:15:28 +0000 (05:15 +0900)
committerSeungha Yang <seungha@centricular.com>
Tue, 7 Jul 2020 20:16:28 +0000 (05:16 +0900)
Since the commit
https://gitlab.gnome.org/GNOME/glib/-/commit/01c02ac08b682de622930b1278c9c14d0ffe6c49,
g_usleep(1) will be translated to Sleep(1) on Windows which means
sleep in 1 millisecond. But GLib provides g_thread_yield() API
which is exactly what we required here for thread context switching.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/559>

libs/gst/check/gstcheck.h

index 45f7a58..9bb8ca3 100644 (file)
@@ -622,8 +622,7 @@ G_STMT_START {                                                  \
 
 #define THREAD_SWITCH()                                         \
 G_STMT_START {                                                  \
-  /* a minimal sleep is a context switch */                     \
-  g_usleep (1);                                                 \
+  g_thread_yield ();                                            \
 } G_STMT_END;
 
 #define THREAD_TEST_RUNNING()   (!!_gst_check_threads_running)