LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Repeated obtain/release queue calls progressively takes longer to execute

Hi, we use single element queues and notifiers to pass information between threads.  In many case we wire the Q references to all vi's that require access to the information, but in other cases (especially when the vis are very deeply embedded in the call chain) we simply obtain a reference to an existing Q or notifier (by name) at the point where the data is used, access the data and then release the Q or notifier reference.  This removes the need to wire the references down a couple of call levels.

 

What we have found though is that these obtain/release pairs take progressively longer to execute.  It may start off at 70us for a obtain/use/release, but after an hour of calling it every 100ms it could sit at 700us (and it gets worse the longer it runs - leave it overnight and the CPU is at 100% the next morning).

 

We are using RT 9 on a desktop PC.  We've used this technique without problems with 8.5.1 and cRIO in other applications. 

 

Any comments welcome.

 

 

0 Kudos
Message 1 of 2
(2,417 Views)
I asked this very similar related question a while back, and as usual, received some good advice. The long and short of it is: Don't do that.
Richard






0 Kudos
Message 2 of 2
(2,407 Views)