05-19-2026 11:58 AM - edited 05-19-2026 12:00 PM
I get that Messenger Channels can have multiple writers but will multiple readers on the same Channel work too?
Here's a simplified example of what I am asking
I believe the loops should just ignore any messages that they are not programmed to handle.
Or will there be a race condition where the first loop to dequeue the message gets it but the others don't even see it?
Solved! Go to Solution.
05-19-2026 12:52 PM
It seems to work like a queue, so each enqueued element can only be dequeued once.
If you want each reader to get a copy I think you need the Event Messenger channel type and its interesting dataflow requirements.
05-19-2026 01:17 PM
Damn you are right, I just ran a quick test and the Messenger Channels act like a Queue with multiple readers there's a race condition dequeuing the channel and only the first "reader" to dequeue the message gets it.
Oh well I just wanted to save some wires on my block diagram.
05-20-2026 08:21 AM - edited 05-20-2026 08:26 AM
Event MessengerM Channel Wire Toolkit for LabVIEW - Download - VIPM by JKI
you can specify the receiver by an integer or string using that toolkit.
05-20-2026 09:20 AM - edited 05-20-2026 09:20 AM
I will give that a look for my next project. At first glance though I'm not sure if it will work for this project without a lot of rewriting code. My architecture is basically a QMH but with Messenger channel wires. My message contains a text "command" for the state machine in the receiving loop and an optional variant payload.
05-20-2026 09:35 AM - edited 05-20-2026 09:48 AM
Your usecase is exactly what this was created for.
05-20-2026 09:47 AM
@RTSLVU wrote:
Damn you are right, I just ran a quick test and the Messenger Channels act like a Queue with multiple readers there's a race condition dequeuing the channel and only the first "reader" to dequeue the message gets it.
If you dig into the generated Channel VIs, you will find that it is mostly just a wrapped up queue. So this behavior makes complete sense.