IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Threads & Processus C++ Discussion :

suspend et resume sur thread


Sujet :

Threads & Processus C++

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut suspend et resume sur thread
    Bonjour,

    Je dois faire migrer une application déjà créer sous windows en Delphi sous linux en c. La migration est faite, mais j'ai un gros problème avec les threads. En effet, sous delphi, la classe TThread possède la méthode Suspend et résume. Aprés pas mal de recherche, je viens de voir que c'était pas conseillé sous Linux. Le problème c'est que j'ai pas mal de thread dans cette application, et de tout revoir prendrait un temps fou.

    J'ai essaye le pthread, et j'ai trouvé dans les sources delphi pour linux, une commande pthread_kill avec les paramètres SIGCONT et SIGSTOP pour suspendre/reprendre l'exécution du thread. Mais ça ne marche pas.

    Avez vous des solutions ou des tuyaux.

    Merci d'avance

  2. #2
    Membre expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Points : 3 065
    Points
    3 065
    Hiko-seijuro

    n'cha - hoyoyo gang

    espace perso : http://hiko-seijuro.developpez.com
    dernier tuto : Introduction à l'éditeur de texte Emacs sous linux
    consulter les faqs : http://www.developpez.com/faq
    PAS DE QUESTIONS TECHNIQUES PAR MP OU MAIL

  3. #3
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par scob85
    En effet, sous delphi, la classe TThread possède la méthode Suspend et résume. Aprés pas mal de recherche, je viens de voir que c'était pas conseillé sous Linux.
    Sous Windows non plus.
    http://msdn2.microsoft.com/en-us/library/ms686345.aspx

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 85
    Points : 86
    Points
    86
    Par défaut Précisions
    Bonjour,

    Je viens de m'appercevoir que ce que j'essaye de faire ( utilisation de pthread( MonThreadId, SIGSTOP ) pour suspendre le thread fonctionne trés bien sur un noyeau linux 2.4.

    Une application Kylix sous 2.4 fonctionne trés bien et quand je la lance sous 2.6, il me donne le meme message [1] Stopped.

    VOila, si ça vous dit quelque chose ou si vous avez une poste, merci.

  5. #5
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Sache juste que si cela est déconseillé, c'est parce que tu peux stopper un thread qui a verrouillé un mutex, bloquant alors tout ton programme (dead lock). Tu n'utilises peut etre pas de mutex, mais les bibliotheques que tu utilises peuvent le faire.
    Sous Windows avec VC++ en version multithread, c'est le cas de la lib standard. http://blog.kalmbachnet.de/?postid=6

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 85
    Points : 86
    Points
    86
    Par défaut
    Merci pour cette réponse.

    Ca m'éclaire un peu plus.

    Le programme fonctionne depuis des années sur deux autres plateforme et on n'a pas de deadlock. Il faut absolument que j'arrive à faire fonctionner le suspend et le résume.

    Tu n'as pas d'autres tuyaux?

Discussions similaires

  1. Suspend et Resume de Thread
    Par stephane.julien dans le forum C#
    Réponses: 7
    Dernier message: 29/10/2007, 16h50
  2. Questions sur thread-safe
    Par cdrc78 dans le forum Struts 1
    Réponses: 1
    Dernier message: 19/01/2007, 11h16
  3. une question sur thread
    Par LN(a) dans le forum Delphi
    Réponses: 5
    Dernier message: 04/09/2006, 11h32
  4. [Threads] suspend and resume
    Par el3gans dans le forum Concurrence et multi-thread
    Réponses: 2
    Dernier message: 19/09/2005, 20h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo