‎01-17-2026 09:35 AM
Glad I could help. Probably good that you're not a programmer elsewhere -- fewer misconceptions to unteach. 🙂
‎01-19-2026 01:27 PM
OP, one bit of additional detail I'd like to make- AristosQueue said "Objects pass by value always". This is true. That does NOT mean you CAN'T do by-ref objects, just that you cannot do that by default. If you want a regular object to be by-ref in LabVIEW, you need to use something like a DVR. One simple example is to have an Object whose only data member is a DVR reference. If you fork that object's wire, each fork maintains the same by-value contents- but in this case, that content is a reference that points to the same thing; one unique instance of a DVR. If you split that wire, you always get the same DVR.
For the Actor Framework, the Enqueuer is the "reference" to a specific instance of an Actor. The Actor wire itself is a by-value object that you should not interact with after launching the Actor. All of the Actor stuff is handled under the hood, and you should only EVER interact with a launched Actor by using its Enqueuer to send it messages.*
Actors can have DVR's inside of them, but you don't use DVRs to implement by-reference Actors. Basically, never try to make a by-ref Actor by doing shenanigans with a DVR.
I hope that makes some sense 🙂
*You never interact with a launched Actor using the Actor wire, but once you Stop that actor, you can get the original object back using the Last Ack system. At that point you can use it like a regular object again, but at that point it's no longer "launched" but stopped. I'd recommend not worrying about that until you get a little more experience with the simpler Actor Framework stuff. It's a pretty niche use case.