Mam problem z biblioteki boost. Używam MinGW gcc 4.5.2 z skompilować następujący kod:Zwiększenie ptime pod MinGW nie wątku bezpieczne
unsigned long GetEpochSeconds()
{
using namespace boost::posix_time;
using namespace boost::gregorian;
ptime now(second_clock::universal_time());
ptime epoch(date(1970,1,1));
time_duration diff = now-epoch;
return diff.total_seconds();
}
Problemem jest to, że ten kod nie jest bezpieczny wątku. Gdy uruchomię go z wielu wątków, moja aplikacja ulega awarii. Na razie skonwertowałem do standardowych funkcji c, takich jak time, mktime itd. I wszystko działa dobrze, ale w przyszłości będę potrzebować kilku funkcji czasu doładowania.
Kompilowałem także z -D_REENTRANT, ale to nie pomogło.
Dzięki za wszelkie sugestie.
czy skompilowałeś wszystko również z '-mthreads'? – rubenvb
Próbowałem, ale bez wyników. – kappa
Możesz zawinąć go w muteks, jeśli wydajność nie jest zbyt duża. – sje397