Ho un problema con la libreria boost. Sto usando MinGW con gcc 4.5.2 per compilare il seguente codice:Aumentare ptime in MinGW non thread safe
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();
}
Il problema è che questo codice non è thread-safe. Quando lo eseguo da più thread, la mia applicazione si blocca. Per ora mi sono convertito in funzioni c-standard come time, mktime ecc. E tutto funziona bene, ma in futuro avrò bisogno di alcune funzioni di boost.
Stavo compilando anche con -D_REENTRANT, ma questo non ha aiutato.
Grazie per eventuali suggerimenti.
hai compilato anche tutto con '-mthreads'? – rubenvb
Ho provato ma senza risultati. – kappa
È possibile eseguire il wrapping in un mutex se il rendimento non è eccessivo. – sje397