[GiNaC-list] How (not) thread-safe is ginac?
jensv at nikhef.nl
Sun Nov 23 13:22:50 CET 2008
just some short comments:
Thomas Bächler schrieb:
> I am planning to use ginac for mathematic implementations which can (and
> should) be parallelized. However, I found hints that ginac is not
> thread-safe. The only thing in the source code was here:
no, it isn't thread safe.
> If I understand this right, the reference counting should be protected
> by mutexes and one would have to think of a way to avoid certain race
> conditions with makewritable(). What else is there in ginac that would
> need to be changed for thread-safety?
reference counting is one (important) place. Symbols get numbers
assigned internally. This is also not thread-safe. Another source of
problems are the look-up tables for the numeric evaluation of certain
> Note that I do not plan to share any objects but only the symbols I use
> between threads, so I probably could (temporarily) work with a version
> that is only partially thread-safe.
If you write a thread-safe symbol factory as an intermediate interface
it might work.
More information about the GiNaC-list