os.eventfd ( )
DESCRIPTION.
Crée un compteur d'événements et retourne le descripteur l'identifiant.
SYNTAXE.
Variable = os.eventfd ( valeur , option )
Variable = ⇨ variable qui recevra la valeur [ optionnel ]
os.eventfd ( ) ⇨ appel de la méthode [ OBLIGATOIRE ]
valeur ⇨ initialisation du compteur [ OBLIGATOIRE ]
option ⇨ option à appliquer [ optionnel ]
REMARQUES.
valeur doit être un int ( ) positif, non signé, de 32 bits. valeur sera appliqué comme valeur initiale du compteur d'événements.
option doit être l'une des valeurs suivantes, ou une combinaison d'elles séparées par or ou le symbole | :
- os.EFD_CLOEXEC, permet d"éviter d'éventuels appels système de type fcntl(2) ;
- os.EFD_NONBLOCK, permet de ne pas bloquer le compteur d'événements.
- os.EFD_SEMAPHORE, permet d'incrémenter le compteur d'événements.
La méthode os.eventfd ( ) n'est disponible que pour noyaux Linux 2.6.27+ avec glibc 2.8+ et supérieurr. Son utilisation sous d'autres OS, tel que Windows de Microsoft, lèvera une exception.
L'appel de la méthode os.eventfd ( ) crée un objet eventfd qui peut être utilisé comme mécanisme d'attente et/ou de notification d'événement par les applications de l'espace utilisateur et par le noyau pour notifier les applications de l'espace utilisateur des événements. L'objet contient un compteur d'événement qui est géré par le noyau. Ce compteur est initialisé avec valeur. Comme valeur de retour,
L'appel de la méthode os.eventfd ( ) retourne int ( ) identifiant le descripteur de fichier qui pourra être utilisé pour faire référence à l'objet eventfd. créé par cette appel.
Bien que valeur ne puisse être supérieur à un int ( ) non signé de 32 bits, le compteur pourra ensuite avoir des valeurs allant jusqu'à 264 - 2 , sur un int ( ) non signé de 64 bits.
Si le compteur d'événements est différent de 0 et que os.EFD_SEMAPHORE fait partie de option, l'appel de la méthode os.eventfd_read ( ) retournera 1 et décrémente le compteur d'événements de 1, sinon, si os.EFD_SEMAPHORE est absent de option, l'appel de la méthode os.eventfd_read ( ) replacera le compteur d'événement à 0 après avoir retournée sa valeur.
Si le compteur d'événements vaut 0, et que os.EFD_NONBLOCK n'est pas dans option, la méthode os.eventfd_read ( ) se bloque.
Voir la méthode os.eventfd_read ( ) qui retourne la valeur du compteur d'événements et le réinitialise si besoin.
Voir la méthode os.eventfd_write ( ) qui modifie la valeur du compteur d'événements.
EXEMPLE.
import os
kcompteur = os.eventfd ( 1 , os.EFD_SEMAPHORE | os.EFD_NONBLOCK )
try : kevenement = os.eventfd_read ( kcompteur )
try : print ( "Sans erreur, c'est ok" )
except : print ( "Erreur détectée" )
finally : os.eventfd_write ( kcompteur , 5 )
except : pass
finally : os.close ( kcompteur )
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la LOGITHEQUE de MON PYTHON PAS A PAS
vous trouvez des suggestions de projets simples et classiques pour
ooo
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
ooo
la programmation récréative avec le langage PYTHON 3
avec un exemple de résolution à télécharger pour vous inspirer.