i would to clear a little!
the expressions are independant from each thread,
exp1 = x*y+....
exp2 = x+x+x+x...
exp3 = y+y*y+3...
..
..
expn = just_symbols..
no subexpressions never.
when i wrote point 4), i meant that the matrix is where these expressions go, each thread puts its expression in a unique cell.
its just as you first though Jens,
Hi!
Am 13.06.2010 20:05, schrieb Alexei Sheplyakov:ah, now I see why we keep arguing: I misread point 4 completely!!! I thought he meant to have a clear the separation of expressions between threads (matrix and cell as tech-speak synonyms for groups of expressions, but NO, he meant really matrices and cells ..., stupid me!).
4) threads access the same common matrix of expressions, but two threads
will never access the same cell.
This does NOT guarantee that you (or GiNaC on your behalf) won't operate
on a same (sub)expression from different threads. You *really* need a thread
safe (or atomic) reference counting to solve this problem.
Well, someone says: you have static variables inside functions there. A thread-switch might occur during the construction, I guess.
As far as I understand GCD code is not any worse in this regard (that said,
it's not any better either). I might be wrong (I'm just a human being), so
I'd be grateful if someone could point out any non-reentrant code in GCD
routines.
Regards,
Jens
_______________________________________________
GiNaC-list mailing list
GiNaC-list@ginac.de
https://www.cebix.net/mailman/listinfo/ginac-list