Решил пойти альтернативным путём, так как mutex умеет ждать, чтобы заблокироваться, то этим его свойством решил воспользоваться и получилось то, что нужно! Провёл сравнение работы очереди на разных ОС:
- Windows (MSVC 2015 x32) - 1,463 msecs (события организованы через CreateEvent)
- Windows (MinGW 5.3.0 x32) - 1,516 msecs (события организованы через CreateEvent)
- Kubuntu 16.04 x64 - 1,093 msecs (события организованы через eventfd)
- Mac OS Yosemite 10.10.5 - 1,285 msecs (события организованы через mutex)
Надеюсь эта информация будет кому нибудь полезна. К слову, проводя сравнение скорости работы кода в windows/linux/mac заметил закономерность, windows всегда выполняет код медленнее, во всех тестах она уступает linux. У меня даже отношение к Linux изменилось в лучшую сторону. Ещё интересный момент когда нужно выполнять много математических вычислений, то компилятор MinGW с включёнными оптимизациями превосходит тоже самое но собранное компилятором MSVC также с оптимизациями, для меня это было открытие.