Section courante

A propos

Section administrative du site

DosWaitEventSem

DOS : Attente d'un événement sémaphore
DOSCALLS.DLL os2.h

Syntaxe

APIRET APIENTRY DosWaitEventSem(PHEV handle,ULONG delaidepause);

Paramètres

Nom Description
handle Ce paramètre permet d'indiquer le Handle du sémaphore à attendre.
delaidepause 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.
8 ERROR_NOT_ENOUGH_MEMORY Cette valeur permet d'indiquer que la limite de mémoire système est atteinte.
95 ERROR_INTERRUPT Cette valeur permet d'indiquer qu'une erreur d'interruption s'est produite.
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 suspendre l'exécution du processus de l'événement de sémaphore.

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.     HEV hevMySemaphore; 
  8.     switch(DosWaitEventSem(hevMySemaphore, -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_NOT_ENOUGH_MEMORY: printf("Erreur : La limite de mémoire système est atteinte.");break;
  12.         case ERROR_INTERRUPT: printf("Erreur : Une erreur d'interruption s'est produite.");break;
  13.         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;
  14.     }
  15. }

Voir également

Langage de programmation - C pour OS/2 - DosCloseEventSem
Langage de programmation - C pour OS/2 - DosCreateEventSem
Langage de programmation - C pour OS/2 - DosOpenEventSem
Langage de programmation - C pour OS/2 - DosPostEventSem
Langage de programmation - C pour OS/2 - DosQueryEventSem
Langage de programmation - C pour OS/2 - DosResetEventSem
Langage de programmation - C pour OS/2 - WinWaitEventSem
Système d'exploitation - OS/2 - Introduction

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