Question

h tenter de comprendre si malloc() dans mon programme de mingw32 compilé de façon croisée est threadsafe ou non, j'ai couru nm sur le binaire. Les résultats:

$ i386-mingw32-nm myfile.exe  | grep malloc
00ab04fc I __imp__malloc
005b8e70 T _malloc
$

A titre de comparaison, voici une recherche de GetLastError, qui est utilisé mais non défini dans mon programme:

$ i386-mingw32-nm myfile.exe  | grep GetLastError
005b9034 T _GetLastError@0
00ab0370 I __imp__GetLastError@0
$

Et voici une recherche de quelque chose que je sais est dans mon programme:

$ i386-mingw32-nm myfile.exe  | grep ends_with
0040a98d T _ends_with
$ 

penser que cela signifie que malloc() dans ma bibliothèque C est fourni comme une couverture à un malloc() du système, tout comme GetLastError(), mais que ends_with() ne figure pas dans le système. Mais je voudrais un deuxième avis.

Merci!

Était-ce utile?

La solution

MinGW n'utilise pas son propre malloc, il relie le malloc de Windows. Alors oui, il est threadsafe, parce que Windows est.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top