Section courante

A propos

Section administrative du site

DosRequestMutexSem

DOS : Requête de sémaphore Mutex
DOSCALLS.DLL os2.h

Syntaxe

APIRET APIENTRY DosRequestMutexSem(HMTX handle,ULONG delaiattente);

Paramètres

Nom Description
handle Ce paramètre permet d'indiquer le Handle de la sémaphore.
delaiattente Ce paramètre permet d'indiquer le nombre de millisecondes que la fonction attend avant de s'exécuter. Cependant, les valeurs suivantes ont des fonctionnalités spéciales :
Constante Valeur Description
SEM_IMMEDIATE_RETURN 0 Cette valeur permet d'indiquer que la fonction permet de retourner immédiatement indépendamment de savoir si la sémaphore est libre ou non.
SEM_INDEFINITE_WAIT -1 Cette valeur permet d'indiquer que la fonction est bloquer indéfiniment jusqu'à ce que la sémaphore devienne libre et la propriété est retourné.

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 d'attendre après un processus de Mutex de sémaphore pendant un certain temps de milliseconde.

Exemple

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

  1. #define INCL_DOSERRORS
  2. #define INCL_DOSSEMAPHORES
  3. #include "os2.h"
  4. #include "stdio.h"
  5.  
  6. void main(void) {
  7.     HMTX hmtxMySemaphore;
  8.     switch(DosRequestMutexSem(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 : 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
Technologie - Informatique - Mutex
Système d'exploitation - OS/2 - Introduction

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