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++

  1. #41
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 394
    Par défaut
    Citation Envoyé par Emmanuel Deloget Voir le message
    C'est aussi comme ça que marche la mémoire partagée sous Windows (mapping nommé).
    Peux-tu développer? Pour moi tout passait par MapViewOfFile()...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  2. #42
    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
    Citation Envoyé par Médinoc Voir le message
    Peux-tu développer? Pour moi tout passait par MapViewOfFile()...
    Par MapViewOfFile() et CreateFileMapping(). Cette dernière fait un lien entre un fichier et une zone mémoire (pour mapper un fichier en mémoire) ou entre une zone mémoire et un pseudo-fichier. Il y a un lien fort entre mémoire partagée et mapping de fichier (sous Windows). C'est similaire à POSIX, ou une zone de mémoire partagée (créée avec shm_open()) doit ensuite être mappée avec mmap() pour qu'on puisse y accéder.

    Du point de vue de l'interaction avec l'OS, l'objet "mémoire partagée" se comporte grosso-modo comme un fichier - qu'on soit sous Windows ou sous POSIX. C'est bien évidemment une approximation - il est évident que la mémoire et les fichiers ne sont pas tant liés que ça - mais l'interface de contrôle est similaire.
    [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.

  3. #43
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par défaut
    UP !

    Des nouvelles sur le sujet ?

  4. #44
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Par défaut
    Citation Envoyé par Iradrille Voir le message
    UP !

    Des nouvelles sur le sujet ?
    Oui tiens d'ailleurs je commence a en avoir mare du code de boost::process 0.5.
    Si il y a une version utilisable de cette lib je suis pret a la tester.

  5. #45
    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
    Citation Envoyé par Klaim Voir le message
    Oui tiens d'ailleurs je commence a en avoir mare du code de boost::process 0.5.
    Si il y a une version utilisable de cette lib je suis pret a la tester.
    Il y a une version très peu avancée sur google code (https://code.google.com/p/edt-process-cpp1y/)

    Pour ce qui est des news, je n'en ai pas à proposer : je suis un peu surchargé en ce moment. Ca devrait se calmer à moyen terme. Quoi qu'il en soit, ce n'est pas un projet abandonné.

    Il me reste à résoudre certains problèmes d'implémentation, notamment sous Linux. Les mutex nommés posent des soucis (je pense que ça vient d'une utilisation moyennement correcte de futex(2) ; heureusement, des gens brillants ont imaginé des remèdes à mon incapacité à lire une page man : http://www.akkadia.org/drepper/futex.pdf).

    Les mutex nommés récursifs sont quand à eux vraiment problématiques. J'étudie l'implémentation des mutex récursifs normaux dans pthread et dans la librairie C++ standard de g++ - si vous avez une idée, je suis preneur.
    [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.

  6. #46
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Par défaut
    Pour l'instant je n'ai besoin de lancer un programme avec des paramettres. J'ai deja mis en place via reseau un protocole de processus maitre-esclave parceque j'ai besoin que ca marche meme sur differentes machines.

    Par contre je pense aussi utiliser les fonctions pour lancer un autre processus encore, qui monitor les processus en local (detection de crash et centralisation des logs), auquel cas le systeme de processus enfant serait plus simple a utiliser que mon systeme maitre/esclave.

    Bref je vais sous-utiliser cette bibliotheque pour l'instant.
    Ce qui m'interesse c'est que c'est portable.

  7. #47
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Par défaut
    Je viens de realiser qu'il y a un autre cas d'utilisation de cette bibliotheque: ecrire des tests unitaires pour des systemes multi-process.

    J'ai le cas suivant:
    J'ai deux processus, le premier client, le second serveur.
    Il y a plusieurs modes d'execution, mais dans le cas classique le client va lancer le serveur. Le client aura prealablement ouvert des connection reseau pour accepter des "esclaves". Le protocole maitre/esclave que j'ai implemente fait juste que si le maitre meurt, les esclaves aussi. Bref, l'implementation de ce protocol est en deux parties.

    Le probleme c'est comment je test que ce protocole marche? J'ai mes classes MasterProcess et SlaveProcess. Normalement c'est facile de les utiliser. Mais pour ecrire un test unitaire il faut creer des applications de test (ou une seule) qui utilise l'un ou l'autre et qui font le test.

    Ca me semble beaucoup plus simple a ecrire, en theorie, avec ta bibliotheque. Mais je peu me tromper. Je vais voir ca des que j'ai fini de lutter avec d'autres parties du code.

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