From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Actor Framework Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

Unloading Actor from memory or project

Hi all,

I have an issue with unloading an actor from memory or project. It looks like once an actor is loaded, it will be loaded and listed as a dependency even if it is not in use at all.

If you take a look at the attached image, the Linked Network Actor (LNA).lvlib is loaded in the dependencies list but in the project, there is absolutely no reference to this LNA.lvlib or LNA.lvclass (this project doesn't use LNA at all).

The only thing I did was that I opened Actor Core.vi in LNA.lvclass from this project to see how the block diagram looks like but closed it right after.

But it looks like the act of opening LNA.lvclass:Actor Core.vi triggered the LNA.lvclass to be loaded into memory.

*Here, it is not just limited to LNA.lvclass but it could be any other lvclasses inherting from Actor.lvclass.

This is a problem because there could be ongoing development in user-developed actors, which could have broken subVIs, but these broken subVIs prevent the main.vi from running although the actor might not be used in the project.

The workaround I found or another unusual behavior is that if I open any dummy project with actor framework before opening my project then somehow the dummy project takes away the dependencies problems from my project.

It is kind of hard to explain in words so the following is a list of steps to reproduce the issue. I am using LabVIEW 2012 SP 32bit. Actor Framework version is 4.1.1.33. LNA version is 1.0.1.11.

1. Create a new template Actor Framework project. Name it AF1.lvproj

(File -> Create Project -> Actor Framework)

2. Create a new VI

3. Drop any Linked Network Actor code in the VI created in step 2. (or any Actor code)

4. Save All (both project and VI)

5. Remove this VI from the project

6. Save All again

Check Dependencies list. Linked Network Actor.lvlib is under user.lib even though the project is no longer using any LNA code.

The workaround is,

7. Create another new template Actor Framework project. Name it AF2.lvproj

8. Create a new VI

9. Drop any Linked Network Actor code in the VI created in step 8.

10. Save All (both project and VI)

11. Remove this Vi from the project

12. Save All again

13. Close Labview completely

14. Open LabVIEW

15. Open AF1 project first.

Check Dependencies list. LNA is still under user.lib

16. Open AF2 project.


Check Dependencies list. LNA is NOT listed under.lib

Please let me know the findings.

Thanks,

Jenna


0 Kudos
Message 1 of 2
(3,124 Views)

For what it's worth, I've seen these "ghost-linkages" as well. An actor was kept in the dependencies list, and it's caller was the AF lib. Restarting LabVIEW sometimes resolved the link. Never found specific repro steps.

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