blob: 25e1c8be37ca9bf3fbb2b9a2a83e7d7cd8d4e149 [file] [log] [blame]
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