DQMH Consortium Toolkits Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

Sync Caller Events - Cloneable - Why not reentrant?

Solved!
Go to solution

Hello there,

I have no issue just a question why the "Synchronize Caller Events.vi"'s are not scripted to be "Preallocated clone reentrant execution?

 

In my szenario I just wanted to start up all Modules and try to get their "DidInit - Event". So I had to register all cloneable modules. See below:

 

dqmh_StatupIssue_TimeoutCase.png

The marked modules create 2 clones of the same module. The problem that occured was the start of both clones at the same time and the one of the "Synchronize Module Events.vi" 's, here on the right side, throwed an error cause of the fixed timeout of 5 seconds. That just happend because both close wanted to use the "Synchronize Caller Events.vi" at the same time. Since that is not reentrant it took the 2nd clone to much time to synchronize within 5 seconds while the 1st is still doing so.

Therefore I just made the VI reentrant and bang the sync of both clones slipped through.

 

But now is my question, why is that sync VI not reentrant? It makes sense when using a Cloneable Module, or not?

 

Peace,

Adrian

 

 

 

Just for completion, the changed VI.

dqmh_StatupIssue_SyncReentrant.png

 

Just for completion, here the case where I grap all needed "DidInit Events".

dqmh_StatupIssue_DidInitCase.png

CLA
Message 1 of 6
(3,717 Views)
Solution
Accepted by topic author AdrianBiehler

You're right, the Synchronize Caller Events.vi should be reentrant inside a cloneable module. Delacor is planning on fixing this issue in the cloneable module template in the next DQMH release.

 

Additionally, Delacor is also planning on including a Validate test to find and fix this VI (and others) within a cloneable module that should be reentrant instead of non-reentrant.

 

As for shared clone vs. preallocated clone, there is no strong reason to go with one or the other in this case, so Delacor opted for shared clones.

Message 2 of 6
(3,697 Views)

Darren is correct. We are addressing this issue on DQMH 4.1

 

DQMH 4.1 is in Beta at the moment. 

We are working on releasing it in the next week or so.

 

 

For an opportunity to learn from experienced developers / entrepeneurs (Steve, Joerg, and Brian amongst them):
Check out DSH Pragmatic Software Development Workshop!

DQMH Lead Architect * DQMH Trusted Advisor * Certified LabVIEW Architect * Certified LabVIEW Embedded Developer * Certified Professional Instructor * LabVIEW Champion * Code Janitor

Have you been nice to future you?
0 Kudos
Message 3 of 6
(3,694 Views)

Okay cool. Didn't know that you are already aware of it :).

Its also just a minor issue that can be found with a little bit of research.

 

 

Thanks for your replies,

Adrian

CLA
Message 4 of 6
(3,683 Views)

Adrian,

 

Thanks for bringing it up to our attention. You don't read minds and had no way of knowing that we knew 😉

 

This is why we have this forum, so LabVIEW programmers using DQMH and Delacor can communicate.

 

Regards,

Fab

For an opportunity to learn from experienced developers / entrepeneurs (Steve, Joerg, and Brian amongst them):
Check out DSH Pragmatic Software Development Workshop!

DQMH Lead Architect * DQMH Trusted Advisor * Certified LabVIEW Architect * Certified LabVIEW Embedded Developer * Certified Professional Instructor * LabVIEW Champion * Code Janitor

Have you been nice to future you?
0 Kudos
Message 5 of 6
(3,670 Views)

Is one of the other VIs that need to be reentrant the Obtain Broadcast Events for Registration.vi?

 

I ask because I am starting multiple clones from my clone manager module and everything is working properly within the manager module.  However, I cannot seem to properly register for the clone events from any other module.  I have a viewer module to have a single screen that shows the status of all of the clones modules and it is unable to receive the broadcast events from the clone modules.  I have restructured my Startup VI's to guarantee that the OBEfR.vi will happen after all of the clones have been spawned.

 

I am thinking about creating some "forwarding" events from my manager module as a workaround, but I am hoping that I am missing something or there is a better way to get those events to fire in my viewer module.  Any other/better ideas?

 

Scott

0 Kudos
Message 6 of 6
(3,536 Views)