ERRORE: Fatal IO error 11 (Risorsa temporaneamente non disponibile) on X server

di il
5 risposte

ERRORE: Fatal IO error 11 (Risorsa temporaneamente non disponibile) on X server

Buongiorno.
Mi capita in modo del tutto casuale che il mio applicativo vada in crash, credo nel momento di eseguire la quarta di questo gruppo di istruzioni:
Glib::RefPtr<Gdk::Window> root = Gdk::Window::get_default_root_window();
usleep(100000);
cout << "Dimensioni2 " << x << " " << y << " " << width << " " << height << endl;
Glib::RefPtr<Gdk::Pixbuf> immagine = Gdk::Pixbuf::create(rootmio, x, y, width, height);
L'errore che mi viene esposto è: Fatal IO error 11 (Risorsa temporaneamente non disponibile) on X server.
La possibilità di questo errore diminuisce molto se do un'attesa leggermente più lunga con la seconda istruzione riportata sopra.
Che voi sappiate, c'è la possibilità di chiedere se le risorse necessarie all'esecuzione di quella istruzione sono libere prima di eseguirla ?
Molte grazie.

5 Risposte

  • Re: ERRORE: Fatal IO error 11 (Risorsa temporaneamente non disponibile) on X server

    Sai gestire le eccezioni?
  • Re: ERRORE: Fatal IO error 11 (Risorsa temporaneamente non disponibile) on X server

    No, cosa dovrei cercare ?
  • Re: ERRORE: Fatal IO error 11 (Risorsa temporaneamente non disponibile) on X server

    While o for con n tentativi e un try catch che ritenta sleep+comando.
  • Re: ERRORE: Fatal IO error 11 (Risorsa temporaneamente non disponibile) on X server

    Molte grazie.
  • Re: ERRORE: Fatal IO error 11 (Risorsa temporaneamente non disponibile) on X server

    Ho inserito il blocco di istruzioni in try catch, come mi ha suggerito Weierstrass, ma continuo ad avere l'errore occasionale senza che entri nella routine catch. Per favore, mi dite dove sbaglio ? Ecco la routine:
    while (true) {
    try {
    cout << "Dimensioni1 " << x << " " << y << " " << width << " " << height << endl;
    Glib::RefPtr<Gdk::Window> root = Gdk::Window::get_default_root_window();
    cout << "Dimensioni2 " << x << " " << y << " " << width << " " << height << endl;
    Glib::RefPtr<Gdk::Pixbuf> immagine = Gdk::Pixbuf::create(root, x, y, width, height);
    cout << "Dimensioni3 " << immagine->get_width() << " " << immagine->get_height() << endl;
    HRvbl.ImmaginiVarie.UltimaImmagineCatturata = immagine;
    cout << "Dimensioni4 " << HRvbl.ImmaginiVarie.UltimaImmagineCatturata->get_width() << " " <<
    HRvbl.ImmaginiVarie.UltimaImmagineCatturata->get_height() << endl;
    HRvbl.ImmaginiVarie.UltimaImmagineCatturata->save(HRvbl.cartellalavoro + "/Ultima immagine CATTURATA.bmp", "bmp");
    HRvbl.ImmaginiVarie.ImmagineDaConvertire = HRvbl.ImmaginiVarie.UltimaImmagineCatturata;
    ConvertiImmagine();
    // HRvbl.HRnet_MAIN->do_320_ConvertiImmagine();
    HRvbl.ImmaginiVarie.UltimaImmagineCatturataTXT = HRvbl.ImmaginiVarie.UltimaImmagineCONVERTITATXT;
    // HRvbl.HRnet_0100->qt5UltimaImmagineCatturata->set(desk1);
    HRvbl.swbloccato_320_CatturaImmagine = false;
    cout << "Esce da CATTURAIMMAGINE" << endl;
    break;
    } catch (...) {
    cout << ".................... Eccezione 10 su CatturaImmagine" << endl;
    continue;
    }
    }

    In esecuzione, ha lavorato bene per 31 immagini e al 32°tentativo ha prodotto la seguente risposta:
    EEEx inizio loop 10
    Controlla che non sia visualizzato nulla al posto dell'immagine ELIMINARE
    Entra in CATTURAIMMAGINE
    Dimensioni1 28 268 60 55
    Dimensioni2 28 268 60 55
    Gdk-Message: 18:43:50.812: HRnet: Fatal IO error 11 (Risorsa temporaneamente non disponibile) on X server :0.0.

    Evidentemente non ho capito come si usa la tecnica try catch. Mi aiutate, per favore ?
    Vi ringrazio.
Devi accedere o registrarti per scrivere nel forum
5 risposte