mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-09-09 05:38:58 +00:00
41 lines
650 B
Text
41 lines
650 B
Text
|
|
blocking wait
|
|
-------------
|
|
|
|
- allocate a new clock entry
|
|
- add to list of pending sync waits
|
|
- do {
|
|
wait on entry
|
|
} while (entry != restart)
|
|
- free entry/remove from list
|
|
|
|
async wait
|
|
----------
|
|
|
|
- if no thread, start thread
|
|
- alloc a new clock entry
|
|
- add to list of pending async waits
|
|
- signal thread to restart timeouts
|
|
|
|
async thread
|
|
------------
|
|
|
|
while (true) {
|
|
if (no entry) wait for restart
|
|
do {
|
|
take first entry
|
|
wait on it
|
|
} while (entry != restart)
|
|
call entry signal function
|
|
free entry/remove from list
|
|
}
|
|
|
|
clock adjust
|
|
------------
|
|
|
|
- loop over sync/async entries
|
|
- restart all entries
|
|
|
|
|
|
|
|
|