DosAddMuxWaitSem |
Ajout d'un sémaphore MuxWait |
---|---|
DOSCALLS.DLL | os2.h |
Syntaxe
APIRET DosAddMuxWaitSem( HMUX hmuxSemaphore, PSEMRECORD pSemRecord ); |
Paramètres
Nom | Description |
---|---|
hmuxSemaphore | Ce paramètre permet d'indiquer l'identificateur Handle de la sémaphore MuxWait à laquelle une autre sémaphore doit être ajouté. |
pSemRecord | Ce paramètre permet d'indiquer l'adresse d'une SEMRECORD à ajouter dans la sémaphore MuxWait spécifié. |
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. |
87 | ERROR_INVALID_PARAMETER | Cette valeur permet d'indiquer qu'un ou plusieurs des paramètres contient une valeur illégale. |
100 | ERROR_TOO_MANY_SEMAPHORES | Cette valeur permet d'indiquer que la limite système de 64 sémaphore est dépassé par ce sémaphore MuxWait. |
105 | ERROR_SEM_OWNER_DIED | Cette valeur permet d'indiquer que le propriétaire du sémaphore MuxWait spécifié est terminé. |
284 | ERROR_DUPLICATE_HANDLE | Cette valeur permet d'indiquer que la sémaphore référé par un pSemRecord est déjà ajouter à la sémaphore MuxWait. |
292 | ERROR_WRONG_TYPE | Cette valeur permet d'indiquer que la sémaphore référé par un pSemRecord est type différent et est déjà dans la liste d'un hmuxSemaphore. |
Description
Cette fonction permet d'ajouter un sémaphore d'événement ou un sémaphore mutex à une liste de sémaphore MuxWait.
Remarque
- Tous les processus ayant accès à un sémaphore MuxWait partagé doivent également avoir accès au sémaphore événement et mutex devant être ajouté à la liste MuxWait. Si un processus n'a pas accès à ce sémaphore, il débloquera et renverra l'erreur ERROR_INVALID_HANDLE. La fonction DosAddMuxWaitSem ne retournera pas d'erreur dans ce cas. Les processus souhaitant accéder au sémaphore MuxWait renverront des erreurs jusqu'à ce qu'un accès approprié soit obtenu.
Exemple
Voici un simple exemple montrant comme appeler cette API avec WatCom C++ for OS/2 :
- #define INCL_DOSERRORS
- #define INCL_DOSSEMAPHORES
- #include "os2.h"
- #include "stdio.h"
-
- void main(void) {
- HMUX hmuxMySemaphore;
- SEMRECORD SemRec;
- switch(DosAddMuxWaitSem(hmuxMySemaphore, &SemRec)) {
- case NO_ERROR: printf("Tout va bien !");break;
- case ERROR_INVALID_HANDLE: printf("Erreur : La valeur du hmuxSemaphore ne point pas sur un sémaphore valide.");
- case ERROR_NOT_ENOUGH_MEMORY : printf("Erreur : La limite de mémoire système est atteinte.");
- case ERROR_INVALID_PARAMETER : printf("Erreur : un ou plusieurs des paramètres contient une valeur illégale.");
- case ERROR_TOO_MANY_SEMAPHORES : printf("Erreur : La limite système de 64 sémaphore est dépassé par ce sémaphore MuxWait.");
- case ERROR_SEM_OWNER_DIED : printf("Erreur : Le propriétaire du sémaphore MuxWait spécifié est terminé.");
- case ERROR_DUPLICATE_HANDLE : printf("Erreur : La sémaphore référé par un pSemRecord est déjà ajouter à la sémaphore MuxWait.");
- case ERROR_WRONG_TYPE : printf("Erreur : La sémaphore référé par un pSemRecord est type différent et est déjà dans la liste d'un hmuxSemaphore.");
- }
- }
Voir également
Langage de programmation - C pour OS/2 - DosCloseMuxWaitSem
Langage de programmation - C pour OS/2 - DosCreateMuxWaitSem
Langage de programmation - C pour OS/2 - DosDeleteMuxWaitSem
Langage de programmation - C pour OS/2 - DosOpenMuxWaitSem
Langage de programmation - C pour OS/2 - DosQueryMuxWaitSem
Langage de programmation - C pour OS/2 - DosWaitMuxWaitSem
Technologie - Informatique - Mutex
Système d'exploitation - OS/2 - Introduction
Dernière mise à jour : Lundi, le 19 juillet 2010