Hello *,
I face some issue with sporadic crashes in xpressive which I think a result of a race condition. The use case is:
a function which needs to parse smth create local regex objects:
const sregex any_char = _;
sregex const& rdelim = parser_->delimiter(); //some dynamic delimiter token
const sregex re_prefix
= bos
>> (s1=-*by_ref(any_char))
>> *(s2=by_ref(rdelim))
>> eos
;
calling this function from multiple threads results in a crash with (boost 1.42, gcc 4.3.5 on debian linux). I previously had more crashes, but moved all
regex objects to global space as const objects and they seem to be fine now. This is the only place I left with a local regex.
In the stack trace it seems like internals of the local object regex are freed via boost weak_ptr with possible double delete attempt.
The stack-trace of the created core-dump during the crash can be accessed via:
(Did not want to send addional 200k to the mailing list.)
Many thanks for help,
Ovanes