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

Langage PHP Discussion :

[Système] gestion des sémaphores


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 258
    Points : 108
    Points
    108
    Par défaut [Système] gestion des sémaphores
    bonjour,

    j'ai besoin de sémaphore pour un projet, mais cela me pose un problème: lorsqu'une sémaphore est utilisée, nous savons donc que si une autre personne souhaite utiliser ce même sémaphore, il devra attendre que cette derniere soit libérée.

    Ce que je voudrais c'est prévenir la personne attendant la libération que la sémaphore risque d'être occupée un certain temps.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $id=sem_get($key);
    if($i==false)
      echo "la semaphore n'a pu être créé";
    else{
     $bool=sem_acquire($id);
    /*le pb c'est qu'ici, tant que la sémaphore ne peut être récupéré
     car utilisé par une autre personne, il y a attente... 
    comment faire pour prévenir la personne souhaitant ici acquérir le
     sémaphore que celle ci est déjà utilisé et qu'il va falloir attendre?*/
    }
    merci pour toutes réponses

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    Si ca sempaphore ca va l'odeur est supportable ^^

    Plus sérieusement les semaphores en php ont une limite énorme : on ne peut garantir que l'on connaitra la sortie de l'utilisateur (fermeture du navigateur sans se déconnecter par exemple).

    Leur utilisation si un systeme de libération automatique n'est pas mise en place peut s'avérer très dangereuse.

    Pour le semaphore en question le blocage doit se faire dans la fonction.

    Dans acquire il faut récupérer la valeur du jeton du semaphore (en bdd ou dans un fichier par exemple) et boucler tant qu'il n'est pas > 0. C'est la sortie de la fonction qui débloquera ton processus.

  3. #3
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 258
    Points : 108
    Points
    108
    Par défaut
    donc tu ferais quoi dans mon cas exactement?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    Dans ton cas j'en connaitrais bien plus qu'actuellement sur la nature du projet, ses contraintes techniques, les marges de manoeuvre et j'étudierais les avantages/inconvénients de différents langages/techniques pour les chiffrer dans un cahier des charges

Discussions similaires

  1. Réponses: 5
    Dernier message: 11/09/2007, 13h42
  2. [Système] Gestion des droits
    Par Tchinkatchuk dans le forum Langage
    Réponses: 2
    Dernier message: 16/04/2007, 14h55
  3. [Système]gestion des menus
    Par gentoo dans le forum IHM
    Réponses: 3
    Dernier message: 23/03/2007, 15h04
  4. [Système] gestion des fichiers et base de données
    Par noobspower dans le forum Langage
    Réponses: 3
    Dernier message: 26/02/2007, 10h42
  5. [Système] gestion des processus linux
    Par julien.63 dans le forum Langage
    Réponses: 6
    Dernier message: 17/11/2006, 23h16

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