Chcę, aby mój program C był przenośny nawet na bardzo starym systemie Unix OS, ale problemem jest to, że używam pthreads i alokacji dynamicznej (malloc). Wszystkie Unixy, które znam, mają bezpieczne dla wątków malloc (Linux, * BSD, Irix, Solaris), jednak nie jest to gwarantowane przez standard C, i jestem pewien, że istnieją bardzo stare wersje, w których nie jest to prawdą.Który Unix nie ma nicolowego malloc?
A więc, czy istnieje lista platform, które musiałbym zawijać przy wywołaniach malloc() z blokadą mutex? Planuję napisać test ./configure, który sprawdza, czy obecna platforma znajduje się na tej liście.
Inną alternatywą byłoby przetestowanie malloc() dla bezpieczeństwa wątków, ale nie znam żadnego deterministycznego sposobu, aby to zrobić. Jakieś pomysły na ten temat?
To pytanie jest istotne tylko dla programistów i dlatego powinno być zadawane na stackoverflow. Prawdopodobnie zostanie tam przeniesiona. –
Bardzo stary Unix nie będzie miał w ogóle "pthreadów" ... – Mat
Standard C nie ma nici - dlatego nie jest "gwarantowany". Posix, który między innymi określa pthreads, gwarantuje to. – nos