You have just found the most reliable channel about LabVIEW. As a certified professional and University Professor I have trained over 1500 certified developers including over 50 Architects. Now I will show you, how to use LabVIEW in a proper way and how to improve your skills. My goal is to encourage you to develop your own unique way of programming keeping in mind core values, which are necessary to write a good, clean code. If you find this content valuable and want to become a professional developer, I encourage you to take a look at my full-length courses.
The execution properties of an FGV must be set to non reentrant subroutine. Subroutine priority is important to ensure efficient execution and guarantee priority inheritance, regardless of the execution system that the calling VI is set to. By definition an FGV is a non reentrant subroutine! which is not mentioned in the video. A correctly implemented FGV, should only be used to store data (with a Get and Set enum control). The code inside the FGV should not modify the input value like it does in this example. FGV’s also do not normally include error functionality. If standard error functionality is required, then it this can be implemented by the calling VI. This video shows a VI that maintains a data value in a shift register, but it does not match the design pattern of an FGV!
You are writing about one of the variants of this solution, Functional Global Variable, as the name suggests, is a much broader concept than just Get and Set. Additionally, for WindowsOS there is no reason to use it as non reentrant subroutine.