[Interest] QScriptProgram and multi-threading

Christian Schneider mail at chrschn.de
Mon Jan 21 23:01:16 CET 2013


Just as a heads up, I was able to narrow down the error and created a
bug report: https://bugreports.qt-project.org/browse/QTBUG-29246

-Christian

Am 21.01.2013 16:13, schrieb Christian Schneider:
> 
> 
> On 01/21/13 15:31, Tony Rietwyk wrote:
>>
>>> Sent: Monday, 21 January 2013 11:32 PM
>>>
>>> Hi all.
>>>
>>> I have written a multi-threaded program (Qt 4.8.3) that executes QtScript
>>> code in multiple threads, each thread with its own QScriptEngine. The
>> script
>>> code is wrapped in QScriptProgram object.
>>>
>>> Is the same QScriptProgram object supposed to be usable in multiple script
>>> engines concurrently? If the answer is yes, I think I found a bug, because
>> it
>>> seems that this is not the case. (I'm happy to file a bug report then). If
>> the
>>> answer is no, the API documentation of QScriptProgram and QScriptEngine is
>>> misleading and should be updated.
>>>
>>> To find the root cause for the problem, I tried to analyze the threads
>> using
>>> Helgrind, and it spits out a lot of errors like the following:
>>> http://img145.imageshack.us/img145/9094/helgrind.png
>>>
>>> This seems to be consistent with what I see in the debugger: When my
>>> application crashes, at least one of the threads almost always is in the
>> control
>>> path of some JIT-related functions of the JS engine.
>>>
>>> Any thoughts would be welcome.
>>>
>>> -Christian
>>
>> Hi, 
>>
>> I don't see anything in the 4.8.4 docs to suggest they can be shared between
>> threads.   Even though they might be executing the same program script, I
>> think you'll need to create a separate one for each thread.  
>>
>> Tony
> 
> Hi Tony.
> 
> You are right, the docs don't explicitly state "QScriptProgram may be
> shared". However, QScriptEngine::evaluate() takes a constant reference
> to the QScriptProgram as an argument, so I was under the impression that
> it is used read-only and can thus be shared among multiple threads
> (that's what I meant with "misleading docs" in my first post).
> 
> Anyway, thanks for your answer.
> 
> -Christian
> 
> 
> 
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 259 bytes
Desc: OpenPGP digital signature
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20130121/34fe551e/attachment.sig>


More information about the Interest mailing list