Я хотел добавить сокет ZeroMQ в программу glib.
Жаль, что сокет zmq не poll()
-поддерживается, и они дают свою реализацию, которая перегружает старый poll()
функционал.Как я могу эффективно интегрировать это в основной цикл?Я попытался использовать их опрос (zmq_poll()
) вместо стандартного, но нет хорошего способа дать ему сокет zmq, кроме как сделать его global
.
Определение нового GSource
работает, но это может привести к высокой загрузке ЦП (путем установки timeout = 0
) или произвольным тайм-аутам опроса (например, установка опроса timeout = 100
как минимум каждые 100 мс), что не очень эффективно, поскольку существует возможность опроса.