08-12-2026 01:35 PM
In a program which I did not develop but I want to modify.
Some of the sub-VI's are in the "clone" format.
Is there a way to universally change a VI to the editable format throughout this program?
08-12-2026 01:50 PM
Hello LED,
If by "clone format", you mean this :
And you want to be able to edit them, just press Ctrl+M.
Or open them through the .lvproj instead of double-clicking on an instance in a caller VI.
This case happen for VI with "preallocated clone reentrant execution" at True.
I would advise against changing that parameter when working on a program you do not master yet. If this option is activated there might be a good reason.
08-12-2026 01:55 PM
Good advice I want to see what will happen if I just eliminate the clone aspect to the program
08-12-2026 03:35 PM
@LED47 wrote:
Good advice I want to see what will happen if I just eliminate the clone aspect to the program
This is likely a terrible idea. The whole idea behind clones is so multiple copies can run at the same time. For example. let's say we have a VI that does nothing but wait five seconds. You have three loops and you put your wait subVI in each one. If you have clones, they can all execute independently of each other so your total wait time is ~ 5 seconds. if they are not cloned, each instance has to wait their turn to execute, resulting in a total of ~ 15 seconds. Don't ask me how I know this.🙄
08-12-2026 03:42 PM
@billko a écrit :
@LED47 wrote:
Good advice I want to see what will happen if I just eliminate the clone aspect to the program
This is likely a terrible idea. The whole idea behind clones is so multiple copies can run at the same time. For example. let's say we have a VI that does nothing but wait five seconds. You have three loops and you put your wait subVI in each one. If you have clones, they can all execute independently of each other so your total wait time is ~ 5 seconds. if they are not cloned, each instance has to wait their turn to execute, resulting in a total of ~ 15 seconds. Don't ask me how I know this.🙄
And that is for "clone" alone. But for preallocated clones it is even worse.
Preallocated clone ensures that each caller will always uses the same instance of the subVI. In other words, the previous developer might have used a shift register or a feedback node inside that you definitely don't want to be shared by every callers inside the program.
Undefined behaviour may happen and break a few things. ☠️
08-12-2026 03:59 PM
@PinguX wrote:
@billko a écrit :
@LED47 wrote:
Good advice I want to see what will happen if I just eliminate the clone aspect to the program
This is likely a terrible idea. The whole idea behind clones is so multiple copies can run at the same time. For example. let's say we have a VI that does nothing but wait five seconds. You have three loops and you put your wait subVI in each one. If you have clones, they can all execute independently of each other so your total wait time is ~ 5 seconds. if they are not cloned, each instance has to wait their turn to execute, resulting in a total of ~ 15 seconds. Don't ask me how I know this.🙄
And that is for "clone" alone. But for preallocated clones it is even worse.
Preallocated clone ensures that each caller will always uses the same instance of the subVI. In other words, the previous developer might have used a shift register or a feedback node inside that you definitely don't want to be shared by every callers inside the program.
Undefined behaviour may happen and break a few things. ☠️
I think you might have this backwards? But the intent of the post is correct.
08-12-2026 04:13 PM
@billko a écrit :
@PinguX wrote:
@billko a écrit :
I think you might have this backwards? But the intent of the post is correct.
Oh, sorry, english is not my native language.
The things that I wanted to say, expressed as a 5yo :
- do not modify the reentrancy setting when you don't understand either the setting itself or the program that is using it
- modifying it it is even more dangerous if it is "preallocated" clone rather than a "shared" one
08-12-2026 04:42 PM
@PinguX wrote:
@billko a écrit :
@PinguX wrote:
@billko a écrit :
I think you might have this backwards? But the intent of the post is correct.
Oh, sorry, english is not my native language.
The things that I wanted to say, expressed as a 5yo :
- do not modify the reentrancy setting when you don't understand either the setting itself or the program that is using it
- modifying it it is even more dangerous if it is "preallocated" clone rather than a "shared" one
🙂 no problem. i got the idea about what you were trying to say.
08-13-2026 09:22 AM
Describing the clone VI is very helpful in ultimate understanding.
Since I'm obviously not too familiar with what that really does, I was able to remove the cloned VI's from my inherited program.
In this case I seem to think it's just a simple area of the program with a single transaction so I'm at this point gonna try it both ways (clone and no clone)
Thank you everyone for your responses