Section courante

A propos

Section administrative du site

WinRequestMutexSem

Fenêtre : Requête de sémaphore Mutex
PMWIN.DLL os2.h

Syntaxe

APIRET WinRequestMutexSem( HMTX hmtxSemaphore, ULONG ulTimeout );

Paramètres

Nom Description
hmtxSemaphore Ce paramètre permet d'indiquer le Handle du sémaphore à relâché.
ulTimeout Ce paramètre permet d'indiquer le nombre de millisecondes que la fonction doit attendre avant de retourner. Toutefois, on peut utiliser les valeurs suivantes pour appeler des fonctions spéciales :
Constante Valeur Description
SEM_IMMEDIATE_RETURN 0 Cette valeur permet d'indiquer que la fonction retourne immédiatement indépendamment de savoir si la sémaphore est posté.
SEM_INDEFINITE_WAIT -1 Cette valeur permet d'indiquer que la fonction est bloqué indéfiniment jusqu'à ce que la sémaphore soit posté.

Retour

Valeur Constante Description
0 NO_ERROR Cette valeur permet d'indiquer que l'opération s'est correctement effectué
6 ERROR_INVALID_HANDLE Cette valeur permet d'indiquer que la valeur du hmuxSemaphore ne point pas sur un sémaphore valide.
95 ERROR_INTERRUPT Cette valeur permet d'indiquer qu'une erreur d'interruption s'est produite.
103 ERROR_TOO_MANY_SEM_REQUESTS Cette valeur permet d'indiquer qu'une erreur de limite système d'utilisation de sémaphore, soit de 65535, est atteinte.
105 ERROR_SEM_OWNER_DIED Cette valeur permet d'indiquer que le propriétaire du sémaphore MuxWait spécifié est terminé.
640 ERROR_TIMEOUT Cette valeur permet d'indiquer que l'appelant est bloqué par ulTimeout millisecondes mais le propriétaire de sémaphore ne peut pas obtenir de limite de temps, donc le temps est expiré.

Description

Cette fonction permet de bloquer jusqu'à ce que le propriétaire d'une sémaphore mutex puisse être obtenu.

Exemple

Voici un simple exemple montrant comme appeler cette API avec WatCom C++ for OS/2 :

  1. #define INCL_DOSERRORS
  2. #define INCL_WINMESSAGEMGR
  3. #include "os2.h"
  4. #include "stdio.h"
  5.  
  6. void main(void) {
  7.     HMTX hmtxMySemaphore;
  8.     switch(WinRequestMutexSem(hmtxMySemaphore, -1)) {
  9.          case NO_ERROR: printf("Tout va bien !");break;
  10.          case ERROR_INVALID_HANDLE: printf("Erreur : La valeur du hmuxSemaphore ne point pas sur un sémaphore valide.");break;
  11.          case ERROR_INTERRUPT: printf("Erreur : Une erreur d'interruption s'est produite.");break;
  12.          case ERROR_TOO_MANY_SEM_REQUESTS: printf("Erreur : Une erreur de limite système d'utilisation de sémaphore, soit de 65535, est atteinte.");break;
  13.          case ERROR_SEM_OWNER_DIED: printf("Erreur : Le propriétaire du sémaphore MuxWait spécifié est terminé.");break;
  14.          case ERROR_TIMEOUT: printf("Erreur : L'appelant est bloqué par ulTimeout millisecondes mais le propriétaire de sémaphore ne peut pas obtenir de limite de temps, donc le temps est expiré.");break;
  15.     }
  16. }

Voir également

Langage de programmation - C pour OS/2 - DosCloseMutexSem
Langage de programmation - C pour OS/2 - DosCreateMutexSem
Langage de programmation - C pour OS/2 - DosOpenMutexSem
Langage de programmation - C pour OS/2 - DosQueryMutexSem
Langage de programmation - C pour OS/2 - DosReleaseMutexSem
Langage de programmation - C pour OS/2 - DosRequestMutexSem
Système d'exploitation - OS/2 - Introduction

Références

OS/2 Warp Presentation Manager API, Edition John Wiley, Joel Barnum, 1995, ISBN: 0-471-03873-3, page 53

Dernière mise à jour : Lundi, le 19 juillet 2010