Sebastian Dröge
1ee349f986
systemclock: Don't keep the clock entry locked while getting the time from the clock
...
gst_clock_get_time() will take the clock mutex, which would then result in a lock
order violation and possible deadlocks. If both mutexes are to be locked, the
clock must always be locked first.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7994 >
2024-12-02 08:21:59 +00:00
Sebastian Dröge
ec698179a9
systemclock: Get rid of conditional unlocking of the clock entries
...
At every point it is known whether the entry needs to be unlocked or not.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7994 >
2024-12-02 08:21:59 +00:00
Sebastian Dröge
4447114713
systemclock: Remove confusing conditional unlock
...
At this point the entry is always locked and needs to be unlocked.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7994 >
2024-12-02 08:21:59 +00:00
Sebastian Dröge
37b9bfdd2e
systemclock: Use a flag while waiting for the async thread to start
...
Otherwise there can be spurious wakeups.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7994 >
2024-12-02 08:21:59 +00:00
L. E. Segovia
5929829131
gst: clock: Move Android OS check to the __ANDROID__ macro
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6510 >
2024-07-17 22:33:52 +00:00
Alexander Slobodeniuk
0e3e688bed
systemclock: fix usage of __STDC_NO_ATOMICS__
...
__STDC_NO_ATOMICS doesn't seem to exist. In fact the only compiler
I've found that sets any of those is msvc, but it sets
__STDC_NO_ATOMICS__, not __STDC_NO_ATOMICS.
__STDC_NO_ATOMICS__ is the one documented by C11 standard.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6848 >
2024-05-14 23:38:31 +02:00
L. E. Segovia
6ce27e328d
gst: clock: Block futex_time64 usage on Android API level < 30
...
This syscall is seccomp blocked on all lower API levels:
ee7bc3002d
While at it, also fix all direct tests on __NR_futex_time64 and
__NR_futex so that they refer to the results available in
config.h.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6477 >
2024-04-02 15:32:37 +00:00
Seungha Yang
9f70328b70
systemclock: Use Windows interlocked APIs
...
MSVC most likely does not support C11 atomic operations
with given compile options
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4794 >
2023-06-08 01:02:45 +00:00
Sebastian Dröge
c52212604e
gst: clock: Clean up code to get the monotonic / realtime clock a bit
...
On Windows and macOS always use the proper monotonic clock, including
for gst_util_get_timestamp(), and initialize its state only once.
Also on macOS use clock_gettime() for the realtime clock, if available
instead of always falling back to GLib.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4658 >
2023-05-22 11:48:27 +00:00
Sebastian Dröge
9ca6b1196e
systemclock: Use futex_time64
syscall if available (32-bit systems) and use correct struct timespec
definition
...
See also https://gitlab.gnome.org/GNOME/glib/-/issues/2634
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1648
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3561 >
2022-12-13 13:11:56 +00:00
Thibault Saunier
6c364d9626
Move files from gstreamer into the "subprojects/gstreamer/" subdir
2021-09-24 16:13:07 -03:00