[Project_owners] thread safety
axel at pike.org
Mon Jul 17 23:39:17 EDT 2006
Eric H. Jung wrote:
> If I want to use nsIThread in my JS XPCOM component, how should I
> guarantee thread safety of the data structures I use? For instance, in
> these threads I want to share a RegExp object and execute RegExp.test()
> in each thread. If RegExp.test() succeeds, I add some data to a shared
> array. Do I need to do anything special to synchronize/lock write access
> to these objects; e.g., create critial sections?
In general, nothing in mozilla is threadsafe. There are a few exceptions
to this rule, but only few.
There are several ways to hack around this, you could for example proxy
stuff on the main thread for xpcom objects.
With js objects itself, or the RegExp in particular, no idea. I suggest
to either dig in the code or ask in the jsengine newsgroup on mozilla.org.
I wouldn't bet money on creating a copy per thread working either, as it
may still be using static vars inside the matching function.
More information about the Project_owners