LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Why every GOOP "Get Data to Modify" is set as reentrant?

Hello All

I found out that in every GOOP programs like e.g. "report generation" the vi "Get Data to Modify" is set as reentrant.

Can somebody explain to me why it is so?
thanks
Pawel
0 Kudos
Message 1 of 3
(2,615 Views)
Hi Pawel,

The reason for the "Get Data Modify.vi" to be reentrant is that if you for example have two parallel executing VI which both tries to access and lock the attributes of the same object, one will successfully lock the attributes and continue execution. The other VI will be forced to wait until the attributes are unlock again. The Get Data To Modify for this will the will "get stucked" and not finishing executing until the attributes are unlocked or the timeout occurs (compare with a LabVIEW semaphore).

Further, if you have another VI executing in parallel to the situation described above (totally three parallel activities) and this code tries to lock and modify another object of the same class. If the Get Data To Modify VI wasn't reentre
nt, this VI should be forced to wait until the Get Data To Modify finished executing for the first situation, actuall the second object is forced to wait on the first objects attributes to be unlocked! This is not the case if the Get Data To Modify is reentrant, the second objects attributes could then be locked immediatly and the execution continues as expected.

Regards,
Mattias Ericsson
Endevo
Main developer of the GOOP Inheritance Toolkit
(please visit http://www.endevo.se/default.asp?lang=eng for more information about the new toolkit).
Message 2 of 3
(2,615 Views)
Hello Mattias

Thank you very much. That was the perfect explanation.

BTW: Actually I still can not decide to buy GOOP 3. I am so happy (and bussy) with 2.0.2 that I am not forced to go for 3.

kind regards
Pawel
0 Kudos
Message 3 of 3
(2,615 Views)