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 :

pthread et bloquage sur signal ou timeout


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Par défaut pthread et bloquage sur signal ou timeout
    Bonjour,

    j'ai besoin d'aide, en temps normal j'utilise ce genre de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    struct timeval	tv;
    int selectResult;
     
    tv.tv_sec = 20;
    tv.tv_usec = 0;
     
    selectResult = select(0, 0, 0, 0, &tv);
    pour faire une pause de 20 secondes, mais avec la subtilité que dès que je reçois un signal, le select se débloque avant la fin des 20 secondes.


    J'ai besoin maintenant de l'utiliser dans un thread de la librairie pthread.

    Mais hélas, ce code ne se débloque pas si je reçois un signal, j'ai essayé d'envoyer un signal avec pthread_kill, mais il semble que çà ne fonctionne que sur certaines fonctions.


    Donc savez-vous comment créer un timer débloquable sur signal dans un pthread ?


    Merci d'avance.

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 474
    Par défaut
    Tu veux dire que tu utilises select() uniquement pour faire une pause ? Pourquoi n'utilises-tu pas sleep(), tout simplement ?

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include <unistd.h>
     
    int main (void)
    {
        sleep (20);
     
        return 0;
    }

  3. #3
    Membre éclairé Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Par défaut
    çà marche très bien avec un select, et le code peut faire un select sur une vraie socket en fonction de l'environnement.

    Mais bon de toute façon j'ai trouvé ce que je voulais : sigtimedwait(...)


    Merci.

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

Discussions similaires

  1. [ADO][Vista][Dll] bloquage sur TAdoConnection.Create
    Par guillemouze dans le forum Bases de données
    Réponses: 3
    Dernier message: 26/02/2008, 14h05
  2. Calcul transformée de Fourier sur signal créneau
    Par StitchP dans le forum Signal
    Réponses: 5
    Dernier message: 27/06/2007, 08h24
  3. Petit bloquage sur join
    Par maximenet dans le forum Requêtes
    Réponses: 13
    Dernier message: 17/11/2006, 13h49
  4. [VBA-E]bloquage sur end function
    Par ogenki dans le forum Macros et VBA Excel
    Réponses: 27
    Dernier message: 23/02/2006, 18h50
  5. [ServerSocket] Problème de bloquage sur readLine()
    Par thomaswilliamson dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 15/03/2005, 11h15

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