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

C++ Discussion :

Forcer la fin de l'execution d'une fonction


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    88
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 88
    Par d�faut Forcer la fin de l'execution d'une fonction
    Bonjour!

    J'ai un petit probleme. J'ai 2 librairies de traitement d'image, qui doivent se passer une image. La technique la plus simple que j'ai trouv�, c'est d'obliger une a �crire dans un fichier tandis que l'autre va lire dedans juste apres, le tout dans une boucle quasi infinie. Le pb, c'est que des fois, une lit alors que l'autre efface tout et r��cris, ce qui donne des erreurs pas sympa. (genre image qui saute, e ct) Existerais t'il un fonction qui permet de forcer le compilo a attendre que l'ecriture soit finie avant de r��crire, ou vice versa?

    Sinon, dans le pas de bol cas, existe t'il des s�maphores/mutex en C++? je vois plein de truc pr le C, mais pas vmt un truc pr le c++ ..

    Merci ^_^

  2. #2
    Membre chevronn� Avatar de pascal.barbier
    Profil pro
    Inscrit en
    Ao�t 2007
    Messages
    362
    D�tails du profil
    Informations personnelles :
    �ge : 64
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 362
    Par d�faut
    D'abord il faut savoir que les appels syst�mes disponibles en C le sont �galement depuis le C++. Il est donc possible d'utiliser les s�maphore et les mutex en C++ exactement de la m�me fa�on que depuis le C.
    Si les librairies sont sous Windows, il est tr�s simple d'utiliser un mutex pour lire / ou �crire dans le fichier voir :
    Exemple d'utilisation des Mutex chez Microsoft
    En r�sum� le principe est :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    CreateMutex(...) // Crée l'objet Mutex
    OpenMutex(...) // Ouvre l'objet Mutex déjà créé par l'autre
    //En boucle :
      WaitForSingleObject(hMutex, INFINITE) : attend que le fichier soit libre
      // Travaille dans le fichier
      ReleaseMutex(hMutex) : libère le fichier

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    88
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 88
    Par d�faut
    H�las, 3 fois h�las, je suis sous linux debian -_-' ... malheureusement pour moi.

    Y a l'�quivalent simpliste sous le pingouin? parce que : #include <windows.h>, je crois que mon pc va me rire au nez ^_^

  4. #4
    Alp
    Alp est d�connect�
    Expert confirm�

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par d�faut
    Bien des biblioth�ques existent pour le multithreading en C++.

    Boost.Thread fournit ce dont tu as besoin.

  5. #5
    R�dacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supa�ro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activit� : Ing Supa�ro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par d�faut
    pthread_mutex_t avec #include <pthread.h>
    Source : http://emmanuel-delahaye.developpez.com/pthreads.htm (c'est du C,tu n'a que faire un wrapper)

    Sinon , y'a boost et pourquoi pas wxWidgets ou Qt
    Edit : Grilled
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une tr�s bonne doc sur le C++ (en) Why linux is better (fr)

  6. #6
    Alp
    Alp est d�connect�
    Expert confirm�

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par d�faut
    Citation Envoy� par Davidbrcz
    pthread_mutex_t avec #include <pthread.h>
    Source : http://emmanuel-delahaye.developpez.com/pthreads.htm
    C'est du C.

    Pour une gestion de tout cela en C++, il existe bien d'autres alternatives ( en r�alit�, pour la plupart, ce sont des wrappers de pthread d'une part pour les syst�mes UNIX et des threads natifs windows pour ... windows

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    88
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 88
    Par d�faut
    oki merci, je vais regarder tout ca ^^

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Forcer l'execution d'une fonction dans un thread
    Par greg2 dans le forum Threads & Processus
    R�ponses: 3
    Dernier message: 24/11/2009, 14h34
  2. Savoir la fin d'execution d'une fonction asynchrone
    Par winnyzeboss1 dans le forum C++
    R�ponses: 9
    Dernier message: 20/03/2009, 14h46
  3. [Prototype] Ex�cution d'une fonction � la fin du chargement de la page
    Par Herman dans le forum Biblioth�ques & Frameworks
    R�ponses: 2
    Dernier message: 30/12/2008, 16h41
  4. Attendre la fin de l'execution d'une fonction
    Par metalcoyote dans le forum G�n�ral JavaScript
    R�ponses: 17
    Dernier message: 05/12/2008, 14h27
  5. Attendre la fin de l'execution d'une fonction
    Par Invit� dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 20/04/2007, 10h33

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