Hi Steven, Thanks for your reply. And if you have time please take a look at checkpoint performane test (many writing/reading operations at the same time). When integrating OpenAis with other application (such as realtime apps), this is very important. Thank you very much. I will improve my test.
Tran Dinh Hung. Steven Dake wrote:
Tran Dinh Hung, In your test case you create a checkpoint and then pass that checkpoint handle to a created thread. This is done in a loop. What is happening is that the thread references the checkpoint handle by address so it is possible to be doing a checkpoint create operation and write operation on the created checkpoint handle before the created checkpoint handle is fully initialized. Let me give an example: 1. create checkpoint returns handle 0 2. pthread create &handle (=0) 3. create checkpoint returns handle 1 4. pthread created in step 2 reads the address of the &handle and has the value 1 and starts its checkpoint write operations on handle #1 step #4 happens while the create checkpoint is setting up in #3. Now essentially what I believe should happen in this case is the checkpoint write should return an invalid handle error until the checkpoint create has completed its full initialization. This is something that should be addressed to return the proper error to the user instead of returning an error within the executive. But for now, I'd suggest not passing the same checkpoint address to every pthread creation operation but instead use an array and pass the address of an array position. I tried this with your test program (using an array for the checkpoint handles) and it generates another fault which I have been working to resolve. Regards -steve
_______________________________________________ Openais mailing list [email protected] https://lists.linux-foundation.org/mailman/listinfo/openais
