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

Reply via email to