Threading issue:Service.GetRODLLibrary.is not threadsafe: In debugger exception is thrown because DataAbstract3.RODL cannot be loaded

(Frederic Vancraeyveldt) #1

It appears Service.GetRODLLibrary.is not threadsafe.

Our code calls in a particular thread function
Service.GetRODLLibrary.xxx
which results in a TXMLToRODL.LoadFileToLibrary of c:\program files…dataabstract3.rodl
however an EFOpenError exception is thrown (the process cannot access the file because it is being used by another process)
Another thread is also busy with GetRODLLibrary at that point.

Should this function be threadsafe? If so when will this be available

Regards,
Frederic

(EvgenyK) #2

Hi,

try to update uXMLToRODL.pas as

procedure TXMLToRODL.LoadFileToLibrary(iFilename: string; iLibrary: TRODLLibrary; iRodlUse:TRODLUse=nil);
..
    lStream := TFileStream.Create(iFilename, fmOpenRead or fmShareDenyWrite); //changed

it should solve this case

(RemObjects) #3

Thanks, logged as bugs://82247

(RemObjects) #4

bugs://82247 got closed with status fixed.