Fuite mémoire

Bugs

Modérateur : xcasadmin

parisse
Messages : 5892
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: Fuite mémoire

Message par parisse » sam. août 06, 2011 9:33 am

oui, les contextes sont prevus pour etre attaches a un thread de calcul chacun, ils contiennent toutes les variables d'etats globales du CAS (par exemple unite d'angle, nombre de chiffres, etc.), dans Xcas par exemple chaque onglet (donc chaque session) a son propre contexte independant des autres. Mais il ne devrait n'y avoir que tres peu de creation de contexte dans une appli (par exemple deja 100 ca ferait beaucoup d'onglets), et la destruction d'un contexte ne devrait pas arriver souvent (fermeture de la session de calcul correspondante).
Par contre la fuite memoire ne devrait quand meme pas provenir de la fonction lexer_functions_register qui ne depend pas du contexte. Il est possible que le destructeur de contexte soit en cause, vu que je n'en cree pas des tonnes, je n'ai jamais eu de probleme memoire a cause de ca.

JKB
Messages : 20
Inscription : mar. juin 28, 2011 7:57 am
Localisation : Paris, France
Contact :

Re: Fuite mémoire

Message par JKB » sam. août 06, 2011 1:17 pm

Bon, si j'ai bien compris, il me faut un contexte par thread (mes threads sont ceux des pthreads). Jusqu'à présent, j'utilisais bêtement la déclaration :

context ct;

que je vais remplacer par un

context *ct;
ct = new context;

du plus bel effet qui sera créé à chaque nouveau thread. Mais ça ne réglera sûrement pas le problème de fuite pour les cas où je crée de nombreux threads car je vais me retrouver à la fin une destruction de contexte par thread, donc avec des bouts de mémoire non libérée (mes programmes peuvent créer des foultitudes et demi de threads).

parisse
Messages : 5892
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: Fuite mémoire

Message par parisse » mar. août 09, 2011 7:53 am

Je pense avoir trouve la cause de la fuite memoire, il manquait un delete dans le destructeur global::~global(), ligne 3303 de global.cc il faut ajouter
delete _thread_param_ptr;

JKB
Messages : 20
Inscription : mar. juin 28, 2011 7:57 am
Localisation : Paris, France
Contact :

Re: Fuite mémoire

Message par JKB » mar. août 09, 2011 9:00 am

Bonjour,

Je teste tout de suite et je vous tiens au courant du résultat. En tout cas, merci pour votre diligence.

Cordialement,

JKB

JKB
Messages : 20
Inscription : mar. juin 28, 2011 7:57 am
Localisation : Paris, France
Contact :

Re: Fuite mémoire

Message par JKB » mar. août 09, 2011 10:31 am

Je viens de tester, c'est parfait. Merci pour tout.

JKB

Répondre