[zeromq-dev] zmq with Xenomai userland RT threads, anyone?

Michael Haberler mail17 at mah.priv.at
Sat Nov 10 12:38:30 CET 2012

having tried and failed, I can answer this myself:

- the requirement for a Xenomai RT tasks is that no non-Xenomai-hardened system calls are invoked directly or indirectly from an RT task
- however, even in non-blocking mode, zmq_recvmsg() will indirectly invoke poll() through signaler.wait(timeout_) which is incompatible with the above requirement.

summary: you cannot use libzmq from Xenomai RT tasks.


There are ways around this, but they make the point of a single, generic interface abstraction a bit moot. 

Still, the underlying ipipe mechanism with lockfree queues would be the perfect vehicle to use in this case, but I'm unusure how to reuse that code directly.

- Michael

live from the 'ZMQ Esoteric Usescases Laboratory'

Am 09.11.2012 um 12:26 schrieb Michael Haberler:

> I am considering a setup of several threads cooperating through inproc queues
> one of those threads must be hard-realtime, with the option of using RT_PREEMPT or Xenomai userland threads ; a polling interface to queues from/to the RT thread is good enough, blocking wait is not needed
> I'd appreciated feedback if anybody has ever tried this / is interested in this with the Xenomai Posix skin (the RT_PREEMPT options seems relatively safe to do)
> - Michael
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev

More information about the zeromq-dev mailing list