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
> [email protected]
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev

_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to