Martin,
> What will happen if I have two objects of the same
> class, and do the same operation on both objects in
> parallel? Will this act as two identical vi:s
> running simultaneousely, or will one object wait
> for the other to release the vi?
You are using the term "object" too often and some of your word choices makes it is hard to understand what you are asking. I have rewritten the question below:
What will happen if I have created two instances of the same GOOP class, and call the same member VI on two class instances in parallel? Can two calls the member VI run simultaneously if passed references to different class instances, or will one instance wait for the other to release the class member VI?First, you should make sure the
class member VI is reentrant (VI Properties setting). This will ensure that it can run in two locations simultaneously. Once this problem is solved, both can run simultaneously if operating on different class instances. The gatekeepers here are the VIs called "Get Data to Modify" and "Set Modified Data". These acquire and release a mutex (aka Semaphore or Mutual Exclusion) on the object. Once a call to "Get Data to Modify" is run on an instance, no other calls to "Get Data to Modify" will return (for that object instance) until "Set Modified Data" is called to release the mutex on the class instance. The key here is that they only mutex an instance of the class, not all instances of the class... but you need to make sure that your member VI is reentrant so that you can call the member VI from two locations concurrently.
Good luck,
Jim