Tôi muốn chương trình C của tôi được di động ngay cả trên hệ điều hành Unix rất cũ nhưng vấn đề là tôi đang sử dụng pthreads và phân bổ động (malloc). Tất cả Unix tôi biết có một malloc thread-an toàn (Linux, * BSD, Irix, Solaris) tuy nhiên điều này không được đảm bảo bởi các tiêu chuẩn C, và tôi chắc chắn rằng có những phiên bản rất cũ, nơi điều này là không đúng sự thật.Mà Unix không có một malloc thread-an toàn?
Vì vậy, có một số danh sách nền tảng mà tôi cần để kết thúc cuộc gọi malloc() bằng khóa mutex không? Tôi dự định viết một thử nghiệm ./configure để kiểm tra xem nền tảng hiện tại có nằm trong danh sách đó hay không.
Phương án thay thế khác là kiểm tra malloc() cho an toàn luồng, nhưng tôi không biết cách nào để thực hiện điều này. Bất kỳ ý tưởng về điều này quá?
Câu hỏi này chỉ phù hợp với người lập trình và do đó nên được hỏi về stackoverflow. Nó có thể sẽ được di trú ở đó. –
Unix cũ sẽ không có 'pthreads' ở tất cả ... – Mat
Tiêu chuẩn C không có chủ đề - đó là lý do tại sao nó không được" đảm bảo ". Posix, trong số những thứ khác định nghĩa pthreads không đảm bảo nó. – nos