AccesViolation exception while saving usd stage with c++ api

Hello,

we have writte a c++ wrapper around the omniverse api for calling it from our .net application. We have an external method “Save” that has the following code:

void Session::Save(bool usdLiveProcess)
{
//stage->SendFastUpdateNotice() ???
stage->Save();

if (usdLiveProcess)
{
	omniClientLiveWaitForPendingUpdates();
	omniClientLiveProcess();
}

}

When using this we get sporadic AccessViolation-Exceptions when calling this method. In most cases it works as it should, but in some cases it throws an ave and the process terminates.

Are there any known scenarios when this could happen (for example using the desktop nucleus with more that 2 parallel users / calls) or something like that?

Can anyone provide any help how to figure our what causes this problem?

Thank you very much for the help

Carl

I’ve stripped down the Save-method to just a single call to omniClientLiveProcess(). But still getting an AccessViolation (but less often).

That leads me to a general question about the client api… is it thread safe? Our connector is a plugin for our server application that syncs many different sessions to a corresponding usd scene… so it is possible that the calls against the nucleus client api could be made in parallel… is thid a problem? If yes what is thread safe and what not?