Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Get Server DLL Path.vi should not be set to re-entrant #317

Closed
kt-jplotzke opened this issue Sep 28, 2023 · 1 comment
Closed

Get Server DLL Path.vi should not be set to re-entrant #317

kt-jplotzke opened this issue Sep 28, 2023 · 1 comment

Comments

@kt-jplotzke
Copy link
Contributor

kt-jplotzke commented Sep 28, 2023

labview source/gRPC lv Support/Server API/Server/Get Server DLL Path.vi

This VI is used in many places throughout the code to return the path to the server DLL. The code is structured so that the correct DLL path is determined on first call and then simply passed out (via a feedback node) on subsequent calls. However, because this VI is set with pre-allocated clone reentrancy, and most other VIs that call it are also set as pre-allocated clones, this VI is cloned all over, which results in the VI always running "first time" and not using the built-in feature to only determine the path once.

This becomes especially apparent when these VIs are built into a PPL. During runtime, I have found that the VI to determine the PPL path (NI_PackedLibraryUtility.lvlib:Packed Library Path.vi) takes ~1-2 seconds to run. Due to the reentrancy settings of the VI, this causes this VI to run many times during gRPC initialization and cleanup, proportional to the number of gRPC services configured.

I have tested setting this VI as a non-reentrant VI and it drastically improves runtime execution in a PPL for my application.

AB#2536610

@kt-jplotzke
Copy link
Contributor Author

Hi - Is it possible to trigger a release with this fix in it? Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant