Boehm Garbage Collector - C++ - Programmation
Marsh Posté le 08-05-2003 à 10:20:42
Je dis peut-etre une connerie, mais le garbage collector se contente p-e de marquer les zones mémoire utilisées et de les libérer tout seul comme un grand qd elles ne sont plus utilisées, non?
Tout cela sans passer par le destructeur...
Marsh Posté le 08-05-2003 à 10:23:55
skeye a écrit : Je dis peut-etre une connerie, mais le garbage collector se contente p-e de marquer les zones mémoire utilisées et de les libérer tout seul comme un grand qd elles ne sont plus utilisées, non? |
C'est ce que je pensais au début, mais j'ai trouvé ça dans la doc qui me laisse penser que c'est possible :
A collectable object may have a clean-up function, which will be |
Marsh Posté le 08-05-2003 à 10:28:13
et ta fonciton cleanup tu as essayé de l'appeler clean-up comme dans la doc?
Marsh Posté le 08-05-2003 à 10:30:28
skeye a écrit : et ta fonciton cleanup tu as essayé de l'appeler clean-up comme dans la doc? |
le - dans un nom de fonction, il va pas apprécier le compilateur
Marsh Posté le 08-05-2003 à 10:31:42
il me semble que dans la doc, il dise qu'il faut faire heriter tes objets de gc
[benoit@benserver C++]$ g++ -Wall -ansi -pedantic -lgc gc.cpp |
Marsh Posté le 08-05-2003 à 10:32:54
kadreg a écrit : |
bonne remarque!
Faudra que je pense à chercher de la doc là-dessus, ca m'intéresse pas mal...
Marsh Posté le 08-05-2003 à 10:33:15
++Taz a écrit : il me semble que dans la doc, il dise qu'il faut faire heriter tes objets de gc |
Bah là, je le fait hériter de gc_cleanup, qui lui même hérite de gc , et c'est le même comportement
Marsh Posté le 08-05-2003 à 11:43:38
An object derived from "gc_cleanup" or containing a member derived |
Marsh Posté le 08-05-2003 à 10:12:46
Je suis en train de faire des essais avec le Boehm Garbage Collector. Voici mon petit programme de test :
Je vois bien passer les création d'objets, mais pas les passages dans les destructeurs des objets non détruits explicitement ou par les effets de pile. J'ai bien tenter de faire dériver ma classe de gc_cleanup, mais ça ne change rien. Comment faire pour que le destructeur soit appelé lorsque le GC détruit un objet ?
PS : mes objets doivent tout de même être bien détruit, puisque j'ai pas de fuites mémoires selon valgrind.
---------------
brisez les rêves des gens, il en restera toujours quelque chose... -- laissez moi troller sur discu !