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

Normalisation C++ Discussion :

Une proposition pour std::process ?


Sujet :

Normalisation C++

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par défaut Une proposition pour std::process ?
    Je ne sais pas ou en est le commité sur la gestion des processus, et j'ai du mal à trouver les documents qui correspondent au travail du workshop concurrence.

    Quoi qu'il en soit, je pensais faire une proposition, mais plutôt que de l'adresser au commité sans préparation, je voulais auparavant passer par vous - parce que vous êtes un communauté de gens vachement doués

    Le texte de la proposition n'est pas finalisé, donc ce post préliminaire va servir à présenter une implémentation possible sous linux d'une classe std::process - et du namespace std::this_process. Ceux qui voient une ressemblance avec la classe std::thread voient juste : la classe std::process a exactement la même interface, à un poil près (il n'y a pas de méthode hardware_concurrency(), puisque ça n'a pas de sens). La classe process::id n'est pas complète pour l'instant (il manque de nombreux opérateurs).

    Le code se compile simplement : make va construire l'exécutable ptest. Le code de ptest est le suivant :

    Code : 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
     
    #include <thread>
    #include <iostream>
    #include <cstdlib>
    #include <process>
     
    int main()
    {
    	std::process p([=]() {
    		std::cout << "- this process    : " << std::this_process::get_id() << std::endl;
    		std::exit(EXIT_SUCCESS);
    	});
    	std::cout << "+ this process    : " << std::this_process::get_id() << std::endl;
    	std::cout << "+ before join()   : " << p.get_id() << std::endl;
    	p.join();
    	std::cout << "+ after join()    : " << p.get_id() << std::endl;
    	std::cout << "+ this process    : " << std::this_process::get_id() << std::endl;
    }
    Il faudrait l'étendre pour présenter les autres fonctionnalités de la classe et du namespace correspondant (notamment this_process::exec()). Je vais faire ça dans la journée (ou dans la soirée).

    L'implémentation sous Windows viendra lorsque j'aurais le temps (allez, on va dire : assez rapidement quand même ; le point ennuyeux étant le fork(), mais je sais comment passer outre, donc ça ira).

    Je joint l'implémentation sous la forme d'un tar.bz2, mais vous pouvez trouver une version plus à jours à l'adresse suivante : https://code.google.com/p/edt-process-cpp1y/

    git clone https://code.google.com/p/edt-process-cpp1y/

    Vous permettra de récupérer le repository, dans lequel se trouvera rapidement un document lyx.
    Fichiers attachés Fichiers attachés
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

Discussions similaires

  1. Réponses: 20
    Dernier message: 04/03/2014, 14h13
  2. Dos create process "Appuyer sur une touche pour continuer"
    Par inspecteur rick dans le forum Débuter
    Réponses: 2
    Dernier message: 31/12/2009, 12h23
  3. comment faire une proposition pour la faq
    Par ddrmax dans le forum C++Builder
    Réponses: 3
    Dernier message: 31/07/2008, 09h05
  4. Proposition pour une connexion sans fil
    Par warning dans le forum Hardware
    Réponses: 6
    Dernier message: 10/04/2008, 13h22

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