Tôi gặp vấn đề với thư viện tăng cường. Tôi đang sử dụng MinGW với gcc 4.5.2 để biên dịch đoạn mã sau:Tăng thời gian làm việc dưới MinGW không phải là chủ đề an toàn
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();
}
Vấn đề là mã này không được thread-safe. Khi tôi chạy nó từ bên trong nhiều luồng, ứng dụng của tôi bị treo. Bây giờ tôi đã chuyển đổi thành các hàm chuẩn c như thời gian, mktime, v.v. và mọi thứ hoạt động tốt, nhưng trong tương lai tôi sẽ cần một vài hàm thời gian tăng cường.
Tôi cũng đang biên dịch với -D_REENTRANT, nhưng điều này không hữu ích.
Cảm ơn mọi đề xuất.
bạn đã biên dịch mọi thứ với '-threads' chưa? – rubenvb
Tôi đã thử nhưng không có kết quả. – kappa
Bạn có thể bọc nó trong một mutex nếu hit hiệu suất không phải là quá lớn. – sje397