01-29-2010 07:31 AM
Hi,
I have a test station here that runs a fairly complex setup with several remote executions, each controlled by its own thread etc. All this is configured in an array of containers in a StationGlobal.
Sometimes when I start the entire procedure with "Test UUTs", I get a runtime error that this particular StationGlobal does not exist. I have TestStand abort the execution, check for the StationGlobal, and it is there, exactly as configured. When I do "Test UUTs" again, all works as expected.
Any idea what can cause this behavior?
Thanks
Peter
01-30-2010 11:02 AM
A couple of ideas:
1) Does the station global exist on the remote machines? Perhaps the error is from one of the remote executions?
2) Is the station global being modified (i.e. resized or subproperties added or removed) dynamically perhaps in one thread and perhaps another thread is trying to access it while it's being modified? Basically, is there a race condition between the threads? With multiple threads involved you might need to use synchronization steps (i.e. Locks) to protect access to your data structure in order to keep it in a consistent state. TestStand protects access to simple value getting and setting (i.e. getting and setting a number), but for structural changes to a data structure (i.e. array resizing or adding, removing, or replacing properties) you need to do your own synchronization using the TestStand synchronization step types or lock step setting to keep more than one thread from accessing the data at a time. Let me know if you need more help with this.
Hope this helps,
-Doug