Problemes de Multithreading
fouf
Membre
Bon j'ai un enorme probleme de multithreading : je veux 2 thread, j'en ai entre 20 et 30 (oui oui, en plus, ca varie).
Le thread en question est cense gere l'envoie d'un executable auxiliaire mais je ne recois rien.
HEEEELLLLLP :why?:
Ca fait 3 jours que je seche. Je commence a en avoir un peu (beaucoup) marre. Comme on dit, c'est relou. Voila le projet en attache.
[Fichier joint supprimé par l'administrateur]
Le thread en question est cense gere l'envoie d'un executable auxiliaire mais je ne recois rien.
HEEEELLLLLP :why?:
Ca fait 3 jours que je seche. Je commence a en avoir un peu (beaucoup) marre. Comme on dit, c'est relou. Voila le projet en attache.
[Fichier joint supprimé par l'administrateur]
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
.
Tu es sûr. Pour moi, çà a bien marcher.
Et je dirai que tu as oublié de quitter le thread.
Prendre presque 50% de cpu de mon G5 (j'adore dire que j'ai un imac G5) alors que l'aplli ne semble plus rien faire...
et monter jusqu'à 40 threads (selon thread viewer) même au repos, là y'à un blème !
Je jette un oeil.
.
Pour moi aussi (c'est plus normal) :fouf):
Non, ca ne change rien. Je pense parce que j'ai creer le thread avec detachNewThread...
Ce qui m'inquiete le plus, c'est que des threads se cree et se detruisent tout seul alors que je n'ai rien demande. Puis, l'appli consomme entre 50 et 70 % du temps CPU. ??? Pendant ce temps, l'auxiliaire consomme 0% alorsa que c'est lui qui fais les calculs. Doit y avoir une boucle qq part mais ou ? Ca va etre la 3eme fois que je relis mon code en entier.
remplace
[tt]
  [evaluator setStandardInput:toPipe];
  [evaluator setStandardOutput:fromPipe];
[/tt]
dans init de ton PlotController par :
[tt]
  [evaluator setStandardInput:toEvaluator];
  [evaluator setStandardOutput:fromEvaluator];
[/tt]
et tout rentrera dans l'ordre !
.
Trop sympa de m'avoir aider.
Je ne sais pas quoi dire. Si : merci
Je commence a un peu en avoir marre la.
[Fichier joint supprimé par l'administrateur]
- indiquer que tu veux ignorer ce signal, et dans ce cas la prochaine lecture ou écriture sur ce tuyau va échouer, et tu gères l'erreur à ce niveau
- sinon tu indiques l'adresse d'une fonction 'C' qui sera appelée lorsque le signal est signalé (arf) et dans cette fonction tu peux traiter l'erreur, etc...
la 1ère solution est de loin la plus simple, à mon avis:
sinon man signal pour tous les détails !
Je ne me souviens plus de ton code, mais je crois que tu créés tes pipes en autorelease... Or je pense qu'au release, ils sont fermés.
Remplace ton [xxx pipe] par un traditionnel alloc/init pour voir.
.
T'en est content de ton G5 ? ça change vraiment les choses ?
De mon côté les nouveaux PB étant toujours G4, je patiente en attendant les G5 pour remplacer mon "vieux" 17" G4 1Ghz.
Stp dis moi que ça vaut le coup et que j'ai raison
Je vous donne une capture de ce que cela donne.
Oxitan, tu voulais une bonne image du framework GraphTool, en voila une (enfin, je pense) En tout cas, merci Mala.
[Fichier joint supprimé par l'administrateur]
Je l'ai changée, merci fouf.
Non, non. Merci oxitan de l'avoir mise sur le site.