Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Invité régulier
    Profil pro Léo
    Inscrit en
    janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Nom : Léo

    Informations forums :
    Inscription : janvier 2011
    Messages : 12
    Points : 6
    Points
    6

    Par défaut Killer un sous-interpréteur

    Bonjour, J'ai créé une console interactive python qui s'appuie sur PyInterpreterState_New()
    puis, je jongle avec des PyThreadState_Swap pour permettre plusieurs "instances" de la console...
    ça marche, mais j'ai un p'tit problème : comment pourrais-je faire pour killer un de mes threads si celui-ci ne répond pas? (genre une boucle infinie)

    Merci d'avance!

  2. #2
    Expert Confirmé Avatar de PauseKawa
    Homme Profil pro Patrice BLANGARIN
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    juin 2006
    Messages
    2 720
    Détails du profil
    Informations personnelles :
    Nom : Homme Patrice BLANGARIN
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2006
    Messages : 2 720
    Points : 3 599
    Points
    3 599

    Par défaut

    Bonjour,

    Ceci ?
    void Py_EndInterpreter(PyThreadState *tstate)

    Destroy the (sub-)interpreter represented by the given thread state. The given thread state must be the current thread state. See the discussion of thread states below. When the call returns, the current thread state is NULL. All thread states associated with this interpreter are destroyed. (The global interpreter lock must be held before calling this function and is still held when it returns.) Py_Finalize will destroy all sub-interpreters that haven’t been explicitly destroyed at that point.
    @+
    Merci d'utiliser le forum pour les questions techniques.

  3. #3
    Invité régulier
    Profil pro Léo
    Inscrit en
    janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Nom : Léo

    Informations forums :
    Inscription : janvier 2011
    Messages : 12
    Points : 6
    Points
    6

    Par défaut

    Oui, mais:
    "The given thread state must be the current thread state."
    ...Or moi, ce que j'aimerais, c'est pouvoir killer le thread depuis un autre... un peu comme avec pthread_cancel... mais je doute qu'on puisse avoir accès au thread posix...

    ...Le but, c'est d'avoir un moyen d'arrêter l'interpréteur si l'utilisateur entre un truc du genre:
    while(true):
    print("stupide boucle fait tout planter")


    (...Bon, après, j'ai toujours la solution d'intercaler avant chaque instruction une fonction de test pour vérifier qu'il n'y a pas de signal d'arrêt, mais ça va ralentir le code python...)

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •