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

Boost C++ Discussion :

boost::asio win / linux


Sujet :

Boost C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 15
    Par défaut boost::asio win / linux
    Bonjour sous windows avec boost::asio il me suffit de lancer un petit thread qui contient :

    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while (pRunning)
    {
        pIoService.run();
        Sleep(10);
    }

    sa fonctionne comme il faut, mais linux n'aime pas trop, a moin de lancer manuellement de pIoService.run() dans le thread principale sa ne fonctionne pas ... Quelqun as une idée ?

  2. #2
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Je comprends pas trop ton code...
    boost::asio::io_service::run est bloquant. Donc effectivement souvent on le met dans un thread:
    Code Exemple de projet Qt : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    // .h
    class MainWindow
    {
        //
    private:
        boost::asio::io_service			m_io_service;
        boost::asio::io_service::work	m_work_io_service;
        boost::thread					m_asio_thread;
    };
     
    // .cpp
    MainWindow::MainWindow(QWidget *parent, Qt::WFlags flags)
    :m_io_service(),
    m_work_io_service(m_io_service),
    m_asio_thread(boost::bind(&boost::asio::io_service::run, boost::ref(m_io_service))),
    ...
    {}
     
    MainWindow::~MainWindow()
    {
    	m_io_service.stop();
    	m_asio_thread.join();
    }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 15
    Par défaut
    hummm je vais essayer ton code , le probleme que je rencontre c'est que le run ne fait rien , peut etre qu'il me fait une copie quelque par, enfin je vais voir

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 15
    Par défaut
    peut tu m'expliquer a quoi correspond boost::asio::io_service::work ?

  5. #5
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Citation Envoyé par hardcpp Voir le message
    hummm je vais essayer ton code , le probleme que je rencontre c'est que le run ne fait rien , peut etre qu'il me fait une copie quelque par, enfin je vais voir
    io_service est non copiable, c'est impossible.

    Citation Envoyé par hardcpp Voir le message
    peut tu m'expliquer a quoi correspond boost::asio::io_service::work ?
    A empecher que io_service::run s'arrête lorsqu'il n'a plus de travail (cf doc). Tu n'en a surement pas besoin. Moi c'est spécial !

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 15
    Par défaut
    si x) c'est sa qu'il me faudrait =) et pour l'arreter ?

    EDIT : merci de ton aide sa fonctionne

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation de Select [Win/Linux]
    Par granquet dans le forum Réseau
    Réponses: 6
    Dernier message: 28/01/2010, 10h04
  2. Quel langage pour une meilleure portabilité Win/Linux
    Par darkervein dans le forum OpenGL
    Réponses: 3
    Dernier message: 22/04/2005, 14h59
  3. [JFrame] [Win/Linux] Comportement keyPressed/keyReleased
    Par plegat dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 23/11/2004, 18h27
  4. partage de connexion win-linux
    Par ynnotna dans le forum Développement
    Réponses: 2
    Dernier message: 15/07/2003, 15h38
  5. Réseau Win/Linux
    Par ben91 dans le forum Développement
    Réponses: 2
    Dernier message: 08/09/2002, 22h59

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