Reforçar a fila de mensagens não baseada na fila de mensagens POSIX? Impossível selecionar (2)?

Eu pensei em usar o Boost.InterprocessFila de Mensagens no lugar de soquetes para comunicação dentro de um host. Mas, após investigá-lo, parece que, por algum motivo, essa biblioteca evita o recurso da fila de mensagens POSIX (suportada pelo meu sistema Linux) e, em vez disso, é implementada sobre a memória compartilhada do POSIX. A interface é semelhante o suficiente para você não adivinhar isso imediatamente, mas parece ser o caso.

A desvantagem para mim é que a memória compartilhada obtida viashm_open(3) parece não ser utilizável comselect(2), em oposição às filas de mensagens POSIX obtidas por meio demq_open(3).

Parece que a biblioteca do Boost perde nesse caso. Alguém entende por que isso deveria ser? Mesmo que as filas de mensagens POSIX estejam disponíveis apenas em alguns sistemas, seria de esperar que o Boost usasse esse recurso onde estivesse disponível e o reimplementasse apenas quando necessário. Existe alguma armadilha do sistema POSIX que ainda não reconheço?

questionAnswers(2)

yourAnswerToTheQuestion