6a2dfa468b
1. Removes the marker task used by schedule() and instead limits the number of task resumptions to the initial length of the task queue 2. Assigns a static and a dynamic priority to each task. The dynamic priority starts with the same value as the static priority and gets incremented by the static priority each time the task gets overtaken by a higher priority task, eventually leading to the task becoming the highest priority (unless the static priority is zero). Tasks with a higher dynamic priority generally take precedence, unless the concurrency exceeds 10 scheduled tasks, in which case the front of the queue is scheduled in normal FIFO order. |
||
---|---|---|
.. | ||
internal | ||
args.d | ||
channel.d | ||
concurrency.d | ||
connectionpool.d | ||
core.d | ||
file.d | ||
log.d | ||
net.d | ||
path.d | ||
process.d | ||
stream.d | ||
sync.d | ||
task.d | ||
taskpool.d |