Pb dans l'exécution d'un NSThread

UniXUniX Membre
21:19 modifié dans Vos applications #1
Salut.

Je tente doucement de me lancer dans l'utilisation des NSThreads .... B)

Je voudrais lancer une méthode toute bête dans un thread séparé du thread principal, qui fait ce qu'elle a à  faire, et qui se termine donc en impliquant la suppression du thread.

J'utilise donc detachNewThreadSelector:toTarget:withObject:
L'éxécution se passe normalement, tout fonctionne, sauf que j'ai tout un tas de messages dans le log du type :
_NSAutoreleaseNoPool(): Object 0xcd4e360 of class NSCFString autoreleased with no pool in place - just leaking


J'ai donc loupé un truc, mais quoi ?

Réponses

  • WIMPWIMP Membre
    21:19 modifié #2
    J'ai utilisé NSThread une seule fois, et je viens de regarder mon code. Donc, à  tout hasard et sans garantie, tu as peut-être oublié de placer au bon endroit

    [NSThread exit];  :)
  • ClicCoolClicCool Membre
    21:19 modifié #3
    Il me semble tout simplement que t'as du oublié de placer un pool dans ton thread.

    Each thread maintains its own stack of NSAutoreleasePool objects. Cocoa expects there to be an autorelease pool always available on the current thread?s stack. If a pool is not available, objects do not get released and you leak memory. An NSAutoreleasePool object is automatically created and destroyed in the main thread of applications based on the Application Kit, but secondary threads (and Foundation-only applications) must create their own before using Cocoa
  • AliGatorAliGator Membre, Modérateur
    21:19 modifié #4
    Mince, pour une fois que je connaissais la réponse à  une question en ObjC, tu me l'as soufflée  :'( :) :)
  • AntilogAntilog Membre
    21:19 modifié #5
    Idem ici  :o
    D'un autre côté, avec le message :
    [tt]Object autoreleased with no pool in place [/tt]
    ...
    Ceci sans vouloir minimiser la performance de ClicCool  o:)
  • ClicCoolClicCool Membre
    21:19 modifié #6
    dans 1168506502:

    Mince, pour une fois que je connaissais la réponse à  une question en ObjC, tu me l'as soufflée  :'( :) :)

    Bah consoles toi Ali, c'est quand même mieux que d'arriver en 3 ème avec 3h1/2 de retard  ::)  :P
  • UniXUniX Membre
    21:19 modifié #7
    Ouaip c'est ça.

    Bizarrement, j'avais en tête l'inverse, à  savoir que le NSAutoreleasePool était automatiquement crée lors d'un nouveau process ....
Connectez-vous ou Inscrivez-vous pour répondre.