Allow to specify per-priority capacities in PriorityLifoSemMPMCQueue
Summary: The `THROW` behavior of `LifoSemMPMCQueue` is unsafe when calling `join()`, because the queue may be full and `join()` will fail to enqueue the poisons. To work around this we can use `PriorityLifoSemMPMCQueue` and dedicate `LO_PRI` to the poisons, but there's no reason that the low priority queue should have the same size as the normal priority. Add a constructor to be able to specify different sizes.
Reviewed By: yfeldblum
Differential Revision:
D6257017
fbshipit-source-id:
c75f33c38fcdad646ba1499bcd434ab65711250c