Disont qu'un Timeout est dans la majorité des cas a considérer comme une erreur, donc si tu recois 0, tu verifie si il y a eu une erreur, si non c'est "juste" un timeout, si oui, tu traite les erreurs..
Dison que c'est aussi pour accommoder avec les cas les plus courants:
- Un événement
- Timeout
Le cas exceptionnel (et qui est proche du Timeout) est le cas d'erreur. Comme il n'existe pas de trilleens (bit a 3 état plutot que 2) il fallais bien melanger deux sur l'etat qui est le plus proche. Melanger "Pas de timeout + Erreur" aurais été vraiment moche
Ce qui veux dire que pour:
Donc si t'as 1, ça a marché.
Si t'as 0, t'as une erreur. Ou pas.
Il faut plutot en fait lire
Donc si t'as 1, ça a marché.
Si t'as 0, il y a un timeout, ou peut etre une erreur.
while(1)
{
ret = SDL_WaitEventTimeout(bla);
if ( ret == 1 )
{
while(SDL_WeHaveSomeEvent())
{
SDL_Event event = SDL_PopEvent();
/* Faire quelque chose avec event */
SDL_DoSomethingWithThatRandomEvent(event);
}
}
else
{
/* Ok alors on a probablement un timeout */
sdlerr = SDL_GetError()
if (unlikely(sdlerr))
{
/* Oups */
SDL_Panic("OUPS - Fallais pas marcher sur le clavier les gars!");
SDL_Exit(-42);
}
/* Faire si besoin est ce qu'on a faire en cas de timeout */
SDL_AnnoyUser("Vous etes vraiment lent...");
}
}
C'est un code assez courant a vrai dire
(unlikely est une macro souvent définie avec des projets utilisant GCC pour indiquer au compilateur que ce test a normalement peu de chance de reussir donc de traiter le code qui est derriere comme peux important question optimisation de branchement, donc ce n'est pas grave si aller l'executer est couteux en cycles)
Proud to be CAKE©®™
GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.