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 reentrent, 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).

Reply via email to