In method _SaveAs() (called from Save(), SaveAs(), SaveAscii(), SaveAsAscii()) there was a double call to SALOMEDS::lock() from different threads. The first call was in Save(), and the second - was in some Engine::Save().
The fix consists in calling to unlock() BEFORE calling Engine::Save() and lock() again - after the call.
SALOMEDS::TMPFile_var aStream;
+ SALOMEDS::unlock(); // asv : fix for PAL8727
if(theASCII)
aStream = Engine->SaveASCII(sco,SALOMEDS_Tool::GetDirFromPath(aUrl).c_str(),theMultiFile);
else
aStream = Engine->Save(sco,SALOMEDS_Tool::GetDirFromPath(aUrl).c_str(),theMultiFile);
+ SALOMEDS::lock(); // asv : fix for PAL8727
HDFdataset *hdf_dataset;
hdf_size aHDFSize[1];