J'ai un programme que je lie avec de nombreuses bibliothèques. J'ai couru mon application sur profiler et ai découvert que la plupart du temps est passée dans l'état "d'attente" après quelques demandes de réseau. Ces demandes sont l'effet de mon code appelant sleeping_function()
de la bibliothèque externe. J'appelle cette fonction dans une boucle qui s'exécute plusieurs fois de sorte que tous les temps d'attente totalisent des quantités énormes.Comment lier une bibliothèque non thread-safe pour que chaque thread ait ses propres variables globales?
Comme je ne peux pas modifier le sleeping_function()
Je veux démarrer quelques threads pour exécuter quelques itérations de ma boucle en parallèle. Le problème est que cette fonction utilise en interne certaines variables globales.
Existe-t-il un moyen de dire à l'éditeur de liens sur SunOS que je veux lier des bibliothèques spécifiques d'une manière qui va placer toutes les variables d'entre eux dans le stockage local de thread?
Belle question. S'il vous plaît veuillez également les solutions Linux/Windows. –