I've had the FGV drilled into me since probably the first hour I ever started a Labview vi. It's been my go-to for the typical FGV use case scenario since day 1.
Right now I'm thinking of a situation where I'd really prefer parallel read access to a value. The value will only be written once at initialization so I'm not concerned about the usual reason one would use an FGV for.
In fact, this value I'm talking about is the time out value for an acquire semaphore which seems to defeat the purpose of the semaphore if various VIs are waiting to just access the time out value.
The semaphore basically keeps abstracted user commands, that are basically a series of multiple requests to the low level driver of hardware, atomic in nature. For instance, in order to run a procedure, you need to check whether the procedure is open in a 3rd party app, make it the active procedure, set simulation flag to whatever, then specify the step to run. I've abstracted those steps to just a simple run procedure step. However, I don't want various background processes that poll the app to sneak in between any sub steps, so its designed that all communication to the instrument has to acquire a certain semaphore to do it.
I just don't know yet what sort of time out I want, so I want it configurable from a central source. FGV seems like a waist having vis wait for access. What's a good way to allow simultaneous access, read only, to a value?