[Interest] QScriptProgram and multi-threading

Tony Rietwyk tony at rightsoft.com.au
Mon Jan 21 15:31:11 CET 2013


> 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





More information about the Interest mailing list