gstreamer/subprojects/gstreamer/docs/random/wtay/clocking3

42 lines
650 B
Plaintext

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