Replaces the default margo pool with one that prioritizes resumed ULTs over those that have not yet launched. Theoretically this will cause services to emphasize completing in-progress requests before starting new ones if both are possibilities.
ULT's will receive a priority boost no more than PUSH_COUNTER_PRIORITY_LIMIT times being resumed (currently set to 50). This is primarily intended to prevent long-running ULTs (like the progress ULT if co-scheduled with RPC handlers) from repeatedly bypassing runnable RPCs.
To do:
- performance test
- clean up code (locking etc.)
- make configurable
- expose pool definition for margo users that want to try it on externally-created pools
Pool based on draft implementation created by Shintaro Iwasaki.