LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

DVR delete and subroutine priority

I just tried opening our LV 2012 SP1 project in LV 2015 to see how things look and I got a couple of surprising broken arrows.

 

Apparently the DVR Delete is not permitted in a VI with subroutine priority in LV 2015 whereas LV 2012 allows this.

 

Is this due to a change in the primitive or is it a bug in LV 2012 SP1?  Should I set the offending VIs to normal priority just to be safe?

 

Shane.

0 Kudos
Message 1 of 8
(3,993 Views)

Hi Intaris,

 

this is a change in LV 2015 (CAR 367145).

The Delete Data Value Reference primitive has been set to asynchronous to fix some low-level bugs.

The consequence is that it cannot be used in subroutine VIs as they don't allow the compiler to use

multiple clumps for the code. The asynchronous flag makes the compiler use a new clump so these

two options won't work together.

 

So after setting your affected VIs to another priority than subroutine you should be fine.

If you have further issues by doing so please contact support over phone to get more detailed help.

 

Best regards,

Peter

Message 2 of 8
(3,925 Views)

Thanks for the clarification.

 

My main interest is whether I need to change anything in LV 2012 SP1 also.  Especially given the mention of "bugs".

 

Should I change the VIs using this functionality in LV 2012 SP1 also to non-subroutine (even though the compiler has no problems with it)?

0 Kudos
Message 3 of 8
(3,909 Views)

Shane,

 

i think you are aware of most cultrips of subroutine vis, aren't you?

So i would expect you to be able to determine on your own if subroutine makes sense or not.

 

My rule of thumb is to NOT use subroutine unless it is a severe performance impact (benchmark!) or i need the "skip subroutine call if busy" option.

So i would try to get rid of that setting as much as possible.....

 

Norbert

Norbert
----------------------------------------------------------------------------------------------------
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.
0 Kudos
Message 4 of 8
(3,896 Views)

Let me phrase it in a different way.

 

Could this bug which has been fixed in LV 2015 be occurring in my LV 2012 SP1 code without us knowing it due to the combination of DVR delete and subroutine priority?

0 Kudos
Message 5 of 8
(3,889 Views)

Shane,

 

well, yes, your code could run into the bug. But i assume that it is highly unlikely.

From what i take from the CAR Peter mentioned in his post, the subroutine VI will simply hang forever in case the bug becomes evident.

 

Norbert

Norbert
----------------------------------------------------------------------------------------------------
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.
0 Kudos
Message 6 of 8
(3,881 Views)

Well we have had cases of our UI freezing in the past, so maybe it's better to remove the subroutine priority as a precaution.

 

Thanks for your patience.

 

Shane.

0 Kudos
Message 7 of 8
(3,863 Views)

I suspect that the change to delete DVR has nothing to do with the subroutine priority and is entirely about making the delete DVR option asynchronous (which therefore prevents it being used in a subroutine VI as a side effect).

 

If I had to take a complete stab in the dark, it was to prevent the delete DVR VI from blocking execution if the DVR is being accessed elsewhere. Although I wonder what that means to the data returned from the delete node?


LabVIEW Champion, CLA, CLED, CTD
(blog)
Message 8 of 8
(3,850 Views)