Merge remote-tracking branch 'origin/0.10'
[platform/upstream/gstreamer.git] / docs / random / wtay / clocking3
1
2 blocking wait
3 -------------
4
5 - allocate a new clock entry
6 - add to list of pending sync waits
7 - do {
8     wait on entry
9   } while (entry != restart)
10 - free entry/remove from list
11
12 async wait
13 ----------
14
15 - if no thread, start thread
16 - alloc a new clock entry
17 - add to list of pending async waits
18 - signal thread to restart timeouts
19
20 async thread
21 ------------
22
23   while (true) {
24     if (no entry) wait for restart
25     do {
26       take first entry
27       wait on it
28      } while (entry != restart)
29      call entry signal function
30      free entry/remove from list
31    }
32   
33 clock adjust
34 ------------
35
36 - loop over sync/async entries
37 - restart all entries
38
39  
40
41