[GiNaC-list] multithreading

Kraus Philipp philipp.kraus at flashpixx.de
Mon Aug 23 13:18:11 CEST 2010


Hello,

I have declared a GiNaC::parser l_parser; in a class method which is  
called in a multithread.
If I show valgrind report I see:

==1084== Possible data race during write of size 1 at 0x1f06e4 by  
thread #3
==1084==    at 0x1B30F6:  
std::string::_Rep::_M_set_length_and_sharable(unsigned long) (in /usr/ 
lib/libstdc++.6.0.4.dylib)
==1084==    by 0x1B39FB: std::string::_M_mutate(unsigned long,  
unsigned long, unsigned long) (in /usr/lib/libstdc++.6.0.4.dylib)
==1084==    by 0x1B3A43: std::string::_M_replace_safe(unsigned long,  
unsigned long, char const*, unsigned long) (in /usr/lib/libstdc++. 
6.0.4.dylib)
==1084==    by 0x1B3AE7: std::string::assign(char const*, unsigned  
long) (in /usr/lib/libstdc++.6.0.4.dylib)
==1084==    by 0x115D139: GiNaC::lexer::lexer(std::istream*,  
std::ostream*, std::ostream*) (in /Developer/opt/Ginac/1.5.8/lib/ 
libginac-1.5.0.dylib)
==1084==    by 0x1157CC2: GiNaC::parser::parser(std::map<std::string,  
GiNaC::ex, std::less<std::string>,  
std::allocator<std::pair<std::string const, GiNaC::ex> > > const&,  
bool, std::map<std::pair<std::string, unsigned long>, GiNaC::ex (*) 
(std::vector<GiNaC::ex, std::allocator<GiNaC::ex> > const&),  
std::less<std::pair<std::string, unsigned long> >,  
std::allocator<std::pair<std::pair<std::string, unsigned long> const,  
GiNaC::ex (*)(std::vector<GiNaC::ex, std::allocator<GiNaC::ex> >  
const&)> > > const&) (in /Developer/opt/Ginac/1.5.8/lib/ 
libginac-1.5.0.dylib)

When will be ginac thread safe and is there such a thing?
Thx

Phil
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cebix.net/pipermail/ginac-list/attachments/20100823/98aabe66/attachment.htm>


More information about the GiNaC-list mailing list