IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

Not enough resources to create thread


Sujet :

SDL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 308
    Par défaut Not enough resources to create thread
    salut,

    j'ai un problème au moment de la création d'un thread, jusque hier tout se passait bien, et ce matin voilà qu'un des thread ne se crée plus! il ne me semble pourtant pas avoir effectuer de changement a ce niveau.

    je vous montre, peut être trouverez vous la cause du problème:

    création du thread:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        //création du thread
        SDL_Thread* move_thread;
     
        //initialisation du thread
        move_thread = SDL_CreateThread(&second_thread,&items);
     
        //verification...
        if ( move_thread == NULL ) {
            FILE* file = fopen("check.txt","a");
            fprintf(file, "Unable to create thread: %s\n", SDL_GetError());
            fclose(file);
        }
    le thread:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    int second_thread(void *_data){
     
        //convertion du parametre _data
        Items *items = (Items*) _data;
     
        //création et initialisation des variables de temps
        int tick = SDL_GetTicks();
        int last_tick = SDL_GetTicks();
     
        while(run != -1){
     
                //on prend le mutex
                SDL_mutexP(mutex1);
     
                //décharg processeur
                SDL_Delay(PROC_PAUSE_TIME);
     
                //on récupere le temps actuel
                tick = SDL_GetTicks();
     
                //on déplace les objets
                items->move(tick - last_tick);
     
                //on modifie l'ancien tick
                last_tick = tick;
     
                //on libere le mutex
                SDL_mutexV(mutex2);
     
        }
     
        return 0;
     
    }
    au moment de la vérification de l'initialisation, le fichier contient le message suivant:
    Unable to create thread: Not enough resources to create thread
    avez vous une piste?

  2. #2
    Membre Expert
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Par défaut
    Est-ce que le problème arrive tout le temps?

    Sinon peut-être que tu as une fuite mémoire et donc que tu n'as plus d'espace pour créer un nouveau thread.

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 308
    Par défaut
    oui, a chaque fois que je lance le programme.

    et non, normalement pas de fuite de mémoire, meme apres reboot c'est pareil, et le thread est créé vers le début de l'application, de plus le gestionnaire de tache indique que je suis loin d'utiliser toutes les capacitées de mon pc.

    et puis comment expliquer que ça ne fonctionne plus du jour au lendemin?

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 308
    Par défaut
    de plus, le programme est composé de 2 threads, le premier se lance parfaitement, mais pas le second, et si j'execute une seconde fois le programme, le premier thread de la seconde execution se lance normalement (mais pas le second thread) .

    donc cela prouve qu'il y a encore possibilitée de lancer des threads... et qu'il y a encore asser de ressources.

  5. #5
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 084
    Par défaut
    Salut


    La fonction "second_thread" ne devrait pas etre caster en (*void) par hasard ?

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 308
    Par défaut
    les threads SDL sont de la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int mon_thread(void* data)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD14] Not enough storage is available to process this command? Pourquoi
    Par chapeau_melon dans le forum WinDev
    Réponses: 0
    Dernier message: 28/05/2009, 07h51
  2. [BODI]erreur Db:not enough space
    Par tigrebin dans le forum BODI
    Réponses: 3
    Dernier message: 06/04/2009, 10h13
  3. restriction souris fenêtre : erreur 8 not enough storage ?
    Par chapeau_melon dans le forum WinDev
    Réponses: 4
    Dernier message: 12/02/2008, 15h14
  4. [ORA-00371] Not enough shared pool memory !!!
    Par max44410 dans le forum Installation
    Réponses: 6
    Dernier message: 30/11/2005, 19h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo