+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Candidat au titre de Membre du Club
    Inscrit en
    janvier 2011
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : janvier 2011
    Messages : 17
    Points : 14
    Points
    14

    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
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    juin 2006
    Messages
    2 720
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 953
    Points
    3 953

    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
    Candidat au titre de Membre du Club
    Inscrit en
    janvier 2011
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : janvier 2011
    Messages : 17
    Points : 14
    Points
    14

    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
  •