07-27-2026 03:22 AM - edited 07-27-2026 03:36 AM
To be able to say anything conclusive we would need to be able to see your actual code including subVIs, not just an image.
You create quite a few objects here. The path DVR for instance is wired to 3 subVIs. Maybe two trigger it and the other registers on it to receive it but we can't say. Then you create another DVR that is also again passed to 3 subVIs. An Error Queue is created too and wired to all and then a user event. For this last one you create a single user event registration that is wired to all these subVIs too, but you also wire the event itself to each of the subVIs. To say that you created a chaotic event messaging structure between these 3 subVIs is not really exaggerating. I would loose the overview in this very quickly and have to reinvestigate every time again when working on this VI.
So yes if that last registered event is indeed waited on in multiple VIs and triggers more than one event handler per event, something seems off, and that might be a race condition in the event registration handling. However with such a criss cross wiring of events and other asynchronous objects between these three subVIs it is a lot more likely that your programmed VIs are not performing the way you think you programmed it.
And as Yair pointed out, wiring an event registration to multiple event structures is discouraged even in the documentation. The documentation only explicitly states the fact that an event will not be received by all the event structures in such a case, but also nowhere makes any guarantee that it will be always received by exactly one event structure only.
07-28-2026 02:10 AM
@akash_maxeye wrote:
Thank you for the explanation. I have one point I'd like to clarify.
If multiple Event Structures truly share the same Event Registration Refnum, I would expect each generated User Event to be dequeued by only one Event Structure.
However, in my application, I can see that the same User Event is handled by multiple Event Structures, while a few Event Structures never receive it.
This behaviour is shown int he video I provided a link to earlier in the thread.
The system behind the scenes is not designed for this kind of usage (as the code is pretty old at this stage) and so the behaviour slips into "kinda works, but kinda doesn't". There is no guaranteed 1:1 event handling, but there's also no guaranteed 1:N event handling. What you get is something in between. Unless something major has changed int he last few LabVIEW versions, I would expect this to still be the observed behaviour.
For any given event, use one registration refnum for each event structure.