Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: fatal IO error 11 - Thread - Event  (Lu 2105 fois)

0 Membres et 1 Invité sur ce sujet

Rymix

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
fatal IO error 11 - Thread - Event
« le: Mars 29, 2015, 11:28:32 pm »
Bonsoir,

Dans le cadre scolaire, je dois créer une sorte de petit jeu video.
Le code est en C++ et utilise la sfml pour la partie graphique.

J'ai un soucis, je dois thread la partie graphique, j'ai donc dans une class Gfx, un pointeur vers un sf::Thread.

class Gfx : public IGfx
{
 private:
  sf::RenderWindow *_window;
....
  sf::Thread    *_thread;
 

A l'initialisation de la class Gfx, je créer le thread :
  _thread = new sf::Thread(&Gfx::loop, this);
  _thread->launch();

void    Gfx::loop()
{
  _window = new sf::RenderWindow(sf::VideoMode(X_SCREEN, Y_SCREEN), "Affichage");
  _window->clear(sf::Color::Black);
  while (_window->isOpen())
    {
      sf::Event event;
      _window->pollEvent(event);
      while (_window->pollEvent(event))
        {
      if (event.type == sf::Event::Closed)
        _window->close();
        }
    }
}
 

Le problème est qu'une erreur apparait quand je laisse la ligne du : pollEvent.
XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0" after 103 requests (103 known processed) with 0 events remaining.

Avez-vous une possible idée de la cause ?
Cordialement

G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Re : fatal IO error 11 - Thread - Event
« Réponse #1 le: Mars 29, 2015, 11:58:05 pm »
Faut peut-être inclure X11/Xlib.h et appeler XInitThreads().

Rymix

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
Re : fatal IO error 11 - Thread - Event
« Réponse #2 le: Mars 30, 2015, 02:33:05 am »
Bonsoir,

Merci pour ta réponse.
Néanmoins, je viens de mettre l'appel XInitThreads(), et cela fonctionne toujours mal.
Je peux faire mon jeu et au bout d'un certain temps malgré mon appel à la fonction XinitThreads(), j'ai un crash.

Citer
[xcb] Unknown request in queue while dequeuing
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
projet: xcb_io.c:179: dequeue_pending_request: Assertion `!xcb_xlib_unknown_req_in_deq' failed.

Gfx::Gfx(int x, int y)
{
  XInitThreads();
  _x = x;
  _y = y;
  LoadDatas();
  _thread = new sf::Thread(&Gfx::loop, this);
  _thread->launch();
  sleep(1);
}
 

Cordialement
« Modifié: Mars 30, 2015, 02:36:59 am par Rymix »

Glân de Brylan

  • Invité
Re : fatal IO error 11 - Thread - Event
« Réponse #3 le: Avril 09, 2015, 11:48:50 am »
Avant tout, il y a un truc qui me chiffonne.
_window->pollEvent(event);
      while (_window->pollEvent(event))

Un explication ?...Pourquoi appeler pollEvent dans le vide juste avant ta boucle de pollEvent ?
Je ne dis pas que c'est une source d'erreurs mais ça me semble bizarre.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : fatal IO error 11 - Thread - Event
« Réponse #4 le: Avril 09, 2015, 11:57:09 am »
Citer
Je ne dis pas que c'est une source d'erreurs
Si : le premier évènement ne sera jamais traité. Et comme en général il n'y a qu'un évènement dans la pile... ;)
Laurent Gomila - SFML developer

  • Invité
Re : fatal IO error 11 - Thread - Event
« Réponse #5 le: Avril 09, 2015, 12:03:22 pm »
En tant que tel ça ne va pas faire planter le programme, mais c'est vrai que pour ce qui est d'avoir une exécution correcte ça va coincer sévère :P

EDIT : En relisant mieux l'intégralité du sujet je me rend compte que si, c'est peut-être la cause de tout de barouin.