[IO] set the affinity of Fibers created by the completer thread
This is a followup to and supersedes !186 (closed).
- Switch from the STL iterator based to a C-style array batched schedule interface
template<class Iterator> schedule(Iterator begin, Iterator finish) -> schedule(Fiber** fibers, unsigned count)
- Schedule Fibers from anywhere with set affinity to the AnywhereQueue and the hinted priorityQueue
- Use the new BPS affinity aware
signalFromAnywhere
and a affinity hint stored in Future::CallbackInternal to set the affinity for Fiber created by the completer thread and scheduled to the AnywhereQueue
I want this to experiment with the IO completer and laws. To see if scheduling completions reaped by the completer to the worker priorityQueue as well is beneficial. Maybe the benefit of faster dispatch from priorityQueue vs AnywhereQueue is worth the laws overhead especially in scenarios where the completer reaps a significant chunk of all completions (20 Worker eval).