Je travaille actuellement sur mon projets CStr. Pour faire court, c'est une bibliothèque de chaînes de caractères et à liaison dynamique (*.dll, *.so).
Pour l'améliorer, je cherche à faire une sorte de petit garbage collector ou du moins garder une trace de tous les objets créés dans une liste pour dans le cas probable d'une fin de programme les chaînes soient libérées (pour ce qui est du plantage d'un programme, je ne sais pas si cela pourra être géré).
Je me heurte cependant à un problème. Mes objets sont lié entre eux par le biais de pointeurs, comme si c'était des maillons d'une chaîne et tout comme on le ferais pour une liste. Je peut éventuellement créer une chaîne globale dont chaque nœuds seraient le départ d'une liste enfant (donc une suite d'objets CStr). Je pensais faire de cette manière car il faut que je prenne en compte une chose importante, c'est une bibliothèque partagée. De ce fait, je pensais récupérer le PID du processus en cours pour pouvoir injecter l'objet dans la bonne liste et surtout pour ne pas détruire tous les objets alors que plusieurs programmes en cours l'utilise, ce serait un peu embêtant sinon
Le crash du programme... De cette manière je ne pourrait pas le gérer mais je pense qu'il serait idiot de créer un programme séparé pour gérer le garbage collector juste pour des chaînes de caractères.
Je suppose que si le programme se termine anormalement, il n'est plus possible à la bibliothèque de vider correctement la liste que ce même processus utilisait et c'est bien ça mon petit problème, j'essaie de faire au mieux pour gérer au maximum et le plus efficacement la mémoire.
Voilà mon idée de base, je voulais avoir les avis et même des suggestions.
Partager